rails simple_form – 隐藏字段 – 创build?

你怎么能有一个简单的forms隐藏领域?

以下代码:

= 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也许更明显。

当然,使用ruby 1.9和新的散列格式,我们可以减less3个字符…

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

正确的方法(如果你不想重置hidden_​​fieldinput的值)是:

 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的值(:title)。 如果您需要访问电影的值(:title),而不是重置它,请执行以下操作:

 = simple_form_for @movie do |f| = f.hidden :title, :value => params[:movie][:title] = f.button :submit 

再次只使用我的答案是你不想重置用户提交的值。

我希望这是有道理的。

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

也是一个选项。 但是请注意,它会跳过为表单构build器定义的任何包装器。

Interesting Posts