2016-07-25 8 views
0

投稿とコメントの2つのモデルがあります。新しいコメントを作成するためのRails:新しいアクションでインスタンス変数を初期化する方法

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 %> 

以下の通りです。新しいアクションでは、以下の2つの方法で@commentインスタンス変数を初期化できます。

@comment = Comment.new 

or 

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

私の質問はComment.newとの@ post.comments.build(set_params)との違いは何かということです。

+0

最初のコメントには 'post_id'プロパティが設定されていません。それはすべての違いです。 –

+0

コメントの作成をどのように扱うかによって、どちらか一方の形式が望ましいかもしれません。 –

答えて

0

コメントにpost_idが設定されているため、後者が好ましいです。

関連する問題