0
Ich habe zwei Modelle Post und Kommentare.Rails: Wie Instanzvariable in neue Aktion zu initialisieren
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
meine Form Kommentar für die Erstellung ist als unten
<%= form_for @comment , :url => post_comments_path(params[:post_id]) do |f| %>
<%= f.text_area :title %>
<%= f.submit "Add Comment" %>
<% end %>
Ich Verwirrung mit neuer Aktion der obigen Form habe. In der neuen Aktion kann ich die Instanzvariable @comment mit zwei Möglichkeiten initialisieren.
@comment = Comment.new
or
@post = Post.find(params[:id)
@comment = @post.comments.build(set_params)
meine Frage ist, was ist der Unterschied zwischen Comment.new und @ post.comments.build (set_params).
Der erste Kommentar hat keine 'post_id'-Eigenschaft. Das ist der Unterschied –
Je nachdem, wie Sie mit der Erstellung von Kommentaren umgehen, ist das eine oder andere Formular möglicherweise vorzuziehen. –