Rails - скрытое поле в частичной форме - ошибка или нет рендеринга
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 принадлежит_to: пользователь и: глава
Скрытое поле вызывает проблемы. Код выше возвращает ошибку
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 ответ
Решение
Заменить:
<%= f.hidden_field :chapter_id, @chapter.id %>
С:
<%= f.hidden_field :chapter_id, value: @chapter.id %>
hidden_field
ожидает хэш в качестве второго аргумента