Sql Rails 4-comment.create保存:文本,但不保存:commenter

Sql Rails 4-comment.create保存:文本,但不保存:commenter,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,当我创建一个新的注释时,文本保存得很好,但是注释者没有被保存。我已经验证了commenter的列存在,并且正在传递参数。字段没有插入到表中,我不知道为什么 表格: 我猜您希望表单中的评论者id而不是用户id。请将表单中的用户id行更改为: <%= hidden_field_tag :commenter_id, params[:commenter_id] %> 您是否检查了用户模型和注释模型之间的关联? 在用户模型中,它应该有多个:注释,在注释模型中,它属于:User在表单中添加一个

当我创建一个新的注释时,文本保存得很好,但是注释者没有被保存。我已经验证了commenter的列存在,并且正在传递参数。字段没有插入到表中,我不知道为什么

表格:


我猜您希望表单中的评论者id而不是用户id。请将表单中的用户id行更改为:

<%= hidden_field_tag :commenter_id, params[:commenter_id] %>

您是否检查了用户模型和注释模型之间的关联?
在用户模型中,它应该有多个:注释,在注释模型中,它属于:User

在表单中添加一个字段,该字段将传递注释者进行注释

<%= form_for @comment do |f| %>
  <p>
    <%= f.label :new_comment %>
    <%= f.text_field :text %>
    <%= hidden_field_tag :user_id, params[:user_id] %>
    <%= hidden_field_tag :post_id, params[:id] %>
    <%= hidden_field_tag 'comment[commenter]', params[:user_id] %>
    <%= f.submit "Comment" %>
  </p>
<% end %>

表单中的commenter字段在哪里?即使没有commenter字段,参数1仍然作为commenter发送。它只是没有保存它。它是作为:commenter还是:commenter\u id发送的?如果是后者-您需要将其添加到允许的字段中。我将用户和帖子id添加为隐藏字段,以便更轻松地将评论保存到正确的帖子中。该属性的名称仅为commenter。这是表中列的名称,也是我在错误页或终端中看到传递的参数的名称。在这种情况下,您希望如何获得commenter值?它是在表单中输入的,还是在控制器或模型中设置的?
<%= hidden_field_tag :commenter_id, params[:commenter_id] %>
@comment = @post.comments.create(params[:comment].permit(:text, :commenter_id))
<%= form_for @comment do |f| %>
  <p>
    <%= f.label :new_comment %>
    <%= f.text_field :text %>
    <%= hidden_field_tag :user_id, params[:user_id] %>
    <%= hidden_field_tag :post_id, params[:id] %>
    <%= hidden_field_tag 'comment[commenter]', params[:user_id] %>
    <%= f.submit "Comment" %>
  </p>
<% end %>
  def create
    @user = User.find(params[:user_id])
    @post = @user.posts.find(params[:post_id])
    @comment = @post.comments.new(params[:comment].permit(:text, :commenter))
    @comment.commenter = @user.id
    @comment.save 
    redirect_to show_post_path(@user, @post)
  end