Rails - 部分形式的hidden_​​field - 错误或不呈现

时间:2014-09-15 08:47:18

标签: ruby-on-rails ruby-on-rails-4 hidden-field partials

chap_comment_controller.rb包含

def create
    @chap_comment = current_user.chap_comments.build(chap_comment_params)
    if @chap_comment.save
      flash[:success] = "Comment created!"
    else
      render fallovercoswrong
    end
  end

我有一个部分 - _chap_comment_form.html.erb

<%= form_for(@chap_comment) do |f| %>
  <%= f.text_area :comment_text, placeholder: "Comment..." %> </div>
  <%= f.hidden_field :chapter_id, @chapter.id %>
  <%= @chapter.id %>is chapter id
  <%= f.submit "Post" %>
<% end %>

:chap_comment belongs_to:user和:chapter

隐藏字段导致问题。上面的代码返回错误

undefined method `merge' for 1:Fixnum

将行更改为

<%= f.hidden_field_tag .....

返回

undefined method `hidden_field_tag' for #<ActionView::Helpers::FormBuilder:0x007fa33165f7a8>

<%= hidden_field_tag ......

默默地将隐藏字段放入渲染的html中。解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

替换:

<%= f.hidden_field :chapter_id, @chapter.id %>

使用:

<%= f.hidden_field :chapter_id, value: @chapter.id %>

hidden_field期望哈希作为第二个参数