准备工作
我打算从以前的帖子 Rails and Database Migrations 结束的地方开始。 另外 , 您可以在 BlogDemo.zip 的基础上开始本文的操作 ,此压缩文件 包含了那个帖子中完成的项目。
测试
BlogDemo
项目
-
打开
BlogDemo
项目。
-
运行项目并浏览
http://localhost:3000/blog
以验证其是否正常运行。
创建评论模型
1. 切换回 Projects 选项卡 , 右键单击 Models 文件夹并生成一个名为 Comment 的新模型。
-
打开
003_create_comments.rb
并将
post_id
,
created_at
和
comment
列添加到上面
,
方法如下
:
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 268.5pt; HEIGHT: 168.75pt" alt="" type="#_x0000_t75"><imagedata o:href="http://weblogs.java.net/blog/bleonard/archive/2007/04/relationships/create_comments.png" src="file:///C:/DOCUME~1/fujiang/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape> -
右键单击
BlogDemo
项目并选择
Migrate Database > To Current Version
<shape id="_x0000_i1026" style="WIDTH: 453pt; HEIGHT: 79.5pt" alt="" type="#_x0000_t75"><imagedata o:href="http://weblogs.java.net/blog/bleonard/archive/2007/04/relationships/migrate_database.png" src="file:///C:/DOCUME~1/fujiang/LOCALS~1/Temp/msohtml1/01/clip_image003.png"></imagedata></shape>
定义模型关系
-
将
has_many
关联关系添加到
post.rb
:
-
将
belongs_to
关联关系添加到
comment.rb
:
重新生成我们的控制器框
架(scaffolding)
在我们第一次创建此项目和生成 Post 模型的 框架 时 , 我们没有选择覆盖现有的博客控制器 , 所以没有创建 框架 操作。这样,我们可以自定义 框架 操作,我们将删除 blog_controller.rb 并再次生成 框架 。注意:不要使用覆盖选项,因为已经自定义了视图,而且不希望放弃这些自定义:
1. 删除 blog_controller.rb
-
生成
Scaffold
(
框架
)
。将
Model Name
设置为
Post
,
Controller Name
设置为
Blog
。
-
打开最新创建的
blog_controller.rb
,
它现在拥有所有
框架
操作
(
索引、列表、显示、新建、创建、编辑、更新和破坏
)
。
新建发表评论操作
我们将要修改显示视图,以使其包括可以添加评论的文本区。首先,我们将为发表评论新建一个操作。
-
修改显示操作,以便将帖子
id
保存到
flash
:
-
创建下一个
post_comment
操作:
修改要发表评论的视图
-
打开
show.rhtml
并在底部添加下列内容:
测试
显示评论
我们的博客还未显示我们所添加的评论,现在我们来修复此问题。
-
将
post_comments
实例变量添加到显示操作,以收集评论:
-
将下列内容添加到
show.rhtml
以显示评论。
和Comments
已经存在 , 其放置的位置可供参考 :
测试
完成的应用程序
BlogDemoComments.zip