rails simple_form-隐藏字段-创建?


Answers:


308

试试这个

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

8
谢谢,那行得通。= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
Linus Oleander

5
这是simple_form进行隐藏输入的方法,但是,如果仅需要隐藏输入,则只需使用Rails的hidden_field表单构建器,因为Simple Form会继承所有表单构建器方法。
scarver2

281

最短的!

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

更短,更干燥,也许更明显。

当然使用ruby 1.9和新的哈希格式,我们可以使用...缩短3个字符。

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

1
或<%= f.hidden_​​field:term_id,:value => @ transaction.term_id%>
mirap

2
这应该是公认的答案。即使该问题询问的是简单形式,当用较短的语法完成完全相同的操作时,也没有理由使用它。
格雷格·布拉斯

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

也是一种选择。但是请注意,它会跳过为表单构建器定义的所有包装器。


5

正确的方法(如果您不尝试重置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的值(:title)。如果您需要访问电影的值(:title),而不是对其进行重置,请执行以下操作:

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

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

我希望这是有道理的。


1
对于simple_form_forhidden使用此处的方法undefined method 将为#<SimpleForm :: FormBuilder:0x00007ffa6cde0be8>`带来隐藏的错误
Meas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.