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

作者在哪里给出:评论?他怎么能在没有在表格中声明的情况下收到呢?

4

1 回答 1

1

因为form_for是对 Comment 类的对象进行操作,所以为字段命名空间中的参数生成的名称params[:comment]

您可以通过将:as选项传递给 来更改此设置form_for,但通常不需要这样做。

于 2012-07-06T09:02:59.220 回答