рельсы простая форма-скрытое поле-создать?



Как вы можете иметь скрытое поле с простой формой?



следующий код:



= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit


приводит к этой ошибке:



undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
561   4  

4 ответов:

попробуй такое

= f.input :title, :as => :hidden, :input_html => { :value => "some value" }

Самый Короткий Еще !!!

=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

снова используйте только мой ответ, вы не хотите сбрасывать значение, представленное пользователем.

Я надеюсь, что это имеет смысл.

Comments

    Ничего не найдено.