你怎么能有一个简单的形式隐藏领域?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