Rails simple _ form-hidden field-create?

如何使用简单形式的隐藏字段?

以下代码:

= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit

导致这个错误:

undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
132817 次浏览

试试这个

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

目前最短的! ! !

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

更短,烘干机,也许更明显。

当然,使用 Ruby 1.9和新的 hash 格式,我们可以缩短3个字符的长度。

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

但是请注意,它会跳过为表单生成器定义的任何包装器。

正确的方法(如果不尝试重置 hide _ 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

示例中使用的代码将重置表单传递的@film 的值(: title)。如果您需要访问电影的值(: title) ,而不是重置它,请执行以下操作:

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

同样 只使用我的回答是您不想重置用户提交的值。

我希望这能说得通。

在我的情况下,以上所有方法都不能完美地工作,因为它们在我的正面留下了一个空白的长方形。对我有用的是..

<%= f.text_field :title, value: "some value", type: "hidden" %>