1,建立文章对应的评论表,一对多的关系
rails generate model Comment comment:string body:text article:references
其中article:references是建立与文章对象关联外键
2,在文章的模型中添加has_many :comments。表示一篇文章对应多条评论
3,添加路由---嵌套路由
resources :articles do
resources :comments
end
4,redirect_to @article的原理
返回的是localhost:blogDemo/articles/1页面,会重新定向到@article这个对象的show页面
5,build和new
save:rails中的save其实是create_or_update,新建或修改记录!不一定是新建,切记
new :只是在内存中新建一个对象,操作数据库要调用save方法。
create = new + 执行sql。
build:与new基本相同,多用于一对多情况下。
6,在页面局部视图的循环
<%=
render
@article
.comments
%>
render
方法会遍历 @article.comments
集合,把每个评论赋值给一个和局部视图同名的本地变量,在这个例子中本地变量是 comment
,这个本地变量可以在局部视图中使用。
7,在页面局部视图的新增嵌套循环
<%=
render
"comments/form"
%>
第二个
render
方法的参数就是要渲染的局部视图,即 comments/form
。Rails 很智能,能解析其中的斜线,知道要渲染 app/views/comments
文件夹中的 _form.html.erb
模板
8,文章中的关联删除,需要在文章的模型中加入关联删除的字段
dependent:
:destroy