рейки simple_form - приховане поле - створити?


Відповіді:


309

спробуйте це

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

8
Дякую, що спрацювало. = f.input :title, :as => :hidden, :input_html => { :value => "some value" }
Лінус Олеандр

5
Це simple_formспосіб робити приховані введення, однак, якщо потрібен лише прихований ввід, тоді просто використовуйте конструктор hidden_fieldформ Rails, оскільки Simple Form успадковує всі методи конструктора форм.
scarver2

281

Найкоротший все-таки !!!

=f.hidden_field :title, :value => "some value"

Коротше, суше і, можливо, більш очевидно.

Звичайно, з рубіном 1.9 і новим хеш-форматом ми можемо на 3 символи коротше, ...

=f.hidden_field :title, value: "some value"

1
Або <% = f.hidden_field: term_id,: value => @
action.term_id

2
Це має бути прийнятою відповіддю. Незважаючи на те, що питання про просту форму, немає ніяких причин використовувати його, коли це виконує абсолютно те саме, що має коротший синтаксис.
Грег Блас

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

Також є варіант. Однак зауважте, що він пропускає будь-яку обгортку, визначену для вашого конструктора форм.


5

Правильний спосіб (якщо ви не намагаєтесь скинути значення вкладеного даних захованих_поля):

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

Знову використовуйте лише мою відповідь, якщо ви не хочете скидати значення, подані користувачем.

Сподіваюся, це має сенс.


1
Тому simple_form_forщо hiddenметод, що використовується тут, збирає помилку, undefined method приховану 'для # <SimpleForm :: FormBuilder: 0x00007ffa6cde0be8> `
Kiry Meas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.