Jak możesz mieć ukryte pole z prostym formularzem?
Poniższy kod:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
powoduje ten błąd:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
Jak możesz mieć ukryte pole z prostym formularzem?
Poniższy kod:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
powoduje ten błąd:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
Odpowiedzi:
Spróbuj tego
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
simple_form
sposób na wykonanie ukrytych danych wejściowych, jednak jeśli potrzebne jest tylko ukryte wejście, po prostu użyj kreatora hidden_field
formularzy Railsów, ponieważ Simple Form dziedziczy wszystkie metody budujące formularze.
Najkrótszy jak dotąd !!!
=f.hidden_field :title, :value => "some value"
Krótszy, bardziej SUCHY i być może bardziej oczywisty.
Oczywiście z ruby 1.9 i nowym formatem skrótu możemy skrócić o 3 znaki za pomocą ...
=f.hidden_field :title, value: "some value"
Prawidłowy sposób (jeśli nie próbujesz resetować wartości wejścia hidden_field) to:
f.hidden_field :method, :value => value_of_the_hidden_field_as_it_comes_through_in_your_form
Gdzie :method
jest metoda, która wywołanie obiektu daje żądaną wartość
Więc postępując zgodnie z powyższym przykładem:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
Kod użyty w przykładzie zresetuje wartość (: tytuł) @movie przekazywanego przez formularz. Jeśli chcesz uzyskać dostęp do wartości (: tytułu) filmu, zamiast go resetować, zrób to:
= simple_form_for @movie do |f|
= f.hidden :title, :value => params[:movie][:title]
= f.button :submit
Ponownie użyj mojej odpowiedzi, że nie chcesz resetować wartości przesłanej przez użytkownika.
Mam nadzieję, że to ma sens.
simple_form_for
The hidden
metoda z użyciem tutaj ma zamiar podnieść błąd undefined method
ukryty”dla # <SimpleForm :: FormBuilder: 0x00007ffa6cde0be8>`
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }