Rails:如何在新操作中初始化实例变量

时间:2016-07-25 18:25:32

标签: ruby-on-rails ruby-on-rails-4

我有两个模型发布和评论。

class Post < ActiveRecord::Base
 has_many :comments 
end

class Comment < ActiveRecord::Base
 belongs_to :post
end

我创建新评论的表单如下

<%= form_for @comment , :url => post_comments_path(params[:post_id])  do |f| %>
    <%= f.text_area :title %>
    <%= f.submit "Add Comment" %>
<% end %>

我对上述表格的新动作感到困惑。在新的操作中,我可以用以下两种方式初始化@comment实例变量。

@comment = Comment.new

or 

@post = Post.find(params[:id)
@comment = @post.comments.build(set_params)

我的问题是Comment.new和@ post.comments.build(set_params)之间有什么区别。

1 个答案:

答案 0 :(得分:0)

后者是首选,因为它会在评论中设置post_id