rails простая форма-скрытое поле-создать?
Как вы можете иметь скрытое поле с простой формой?
следующий код:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
приводит к этой ошибке:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
4 ответов
Еще Короткие !!!
=f.hidden_field :title, :value => "some value"
короче, суше и, возможно, более очевидным.
конечно, с ruby 1.9 и новым хэш-форматом мы можем пойти на 3 символа короче...
=f.hidden_field :title, value: "some value"
= f.input_field :title, as: :hidden, value: "some value"
тоже вариант. Обратите внимание, однако, что он пропускает любую оболочку, определенную для вашего построителя форм.
правильный способ (если вы не пытаетесь сбросить значение входа hidden_field):
f.hidden_field :method, :value => value_of_the_hidden_field_as_it_comes_through_in_your_form
здесь :method
Это метод, который при вызове объекта приводит к значению, которое вы хотите
Итак, следуя приведенному выше примеру:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
код, используемый в Примере, сбросит значение (:title) @movie, передаваемое формой. Если вам нужно получить доступ к значению (: title) фильма, вместо его сброса, сделайте это:
= simple_form_for @movie do |f|
= f.hidden :title, :value => params[:movie][:title]
= f.button :submit
снова используйте только мой ответ, вы не хотите сбрасывать значение, представленное пользователем.
Я надеюсь, что это имеет смысл.