szyny simple_form - ukryte pole - utworzyć?


Odpowiedzi:


309

Spróbuj tego

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

8
Dzięki, zadziałało. = f.input :title, :as => :hidden, :input_html => { :value => "some value" }
Linus Oleander

5
Jest to simple_formsposób na wykonanie ukrytych danych wejściowych, jednak jeśli potrzebne jest tylko ukryte wejście, po prostu użyj kreatora hidden_fieldformularzy Railsów, ponieważ Simple Form dziedziczy wszystkie metody budujące formularze.
scarver2

281

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"

1
Lub <% = f.hidden_field: term_id,: value => @ transaction.term_id%>
mirap

2
To powinna być akceptowana odpowiedź. Mimo że pytanie o prostą formę, nie ma powodu, aby go używać, skoro daje to dokładnie to samo przy krótszej składni.
Greg Blass

5
= f.input_field :title, as: :hidden, value: "some value"

Jest również opcją. Zwróć jednak uwagę, że pomija wszelkie opakowanie zdefiniowane dla twojego kreatora formularzy.


5

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.


1
Dla simple_form_forThe hiddenmetoda z użyciem tutaj ma zamiar podnieść błąd undefined method ukryty”dla # <SimpleForm :: FormBuilder: 0x00007ffa6cde0be8>`
Kiry pomiarowy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.