0

このフォームからコントローラーに来る:commentを作成者がどこに与えるかを理解したい

    <h2>Add a comment:</h2>
<%= form_for([@post, @post.comments.build]) do |f| %>
  <p>
    <%= f.label :commenter %><br />
    <%= f.text_field :commenter %>
  </p>
  <p>
    <%= f.label :body %><br />
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

そして、クラスとアクションは

  class CommentsController < ApplicationController
  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment])
    redirect_to post_path(@post)
  end
end

作者が:commentを与えるところ?フォームで主張せずにそれをどのように受け取ることができますか?

4

1 に答える 1

1

form_forはクラス Comment のオブジェクトで動作するため、生成されたフィールドの名前空間の名前空間は、 params[:comment].

:asオプションをに渡すことでこれを変更できますform_forが、これは通常は必要ありません。

于 2012-07-06T09:02:59.220 に答える