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中。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
替换:
<%= f.hidden_field :chapter_id, @chapter.id %>
使用:
<%= f.hidden_field :chapter_id, value: @chapter.id %>
hidden_field
期望哈希作为第二个参数