你怎麼能有一個簡單的形式隱藏領域?rails simple_form - 隱藏字段 - 創建?
下面的代碼:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
導致此錯誤:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
你怎麼能有一個簡單的形式隱藏領域?rails simple_form - 隱藏字段 - 創建?
下面的代碼:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
導致此錯誤:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
試試這個
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
最短然而!!!
=f.hidden_field :title, :value => "some value"
更短,DRYER也許更明顯。
當然與紅寶石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
在這個例子中使用將重置值的代碼(:標題)@movie由形式傳遞。如果您需要訪問值(:標題),而不是將其復位電影的,這樣做:
= simple_form_for @movie do |f|
= f.hidden :title, :value => params[:movie][:title]
= f.button :submit
再次只能用我的答案是你不想要重置用戶提交的值。
我希望這是有道理的。
謝謝,這工作。 '= f.input:title,:as =>:hidden,:input_html => {:value =>「some value」}' – Oleander 2011-03-20 21:14:42
這是'simple_form'方式來做隱藏的輸入,但是,如果只有一個隱藏的輸入需要使用Rails的hidden_field表單構建器,因爲Simple Form繼承了所有的表單構建器方法。 – scarver2 2014-11-04 01:18:19