Lin*_*der 171 ruby-on-rails hidden-field form-for ruby-on-rails-3 simple-form
你怎么能有一个简单形式的隐藏领域?
以下代码:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
导致此错误:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
Run Code Online (Sandbox Code Playgroud)
fl0*_*00r 302
试试这个
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
Run Code Online (Sandbox Code Playgroud)
Mic*_*ant 276
最短的!!!
=f.hidden_field :title, :value => "some value"
Run Code Online (Sandbox Code Playgroud)
更短,干燥,也许更明显.
当然使用ruby 1.9和新的哈希格式我们可以缩短3个字符...
=f.hidden_field :title, value: "some value"
Run Code Online (Sandbox Code Playgroud)
= f.input_field :title, as: :hidden, value: "some value"
Run Code Online (Sandbox Code Playgroud)
也是一种选择.但请注意,它会跳过为表单构建器定义的任何包装器.
正确的方法(如果你没有尝试重置hidden_field输入的值)是:
f.hidden_field :method, :value => value_of_the_hidden_field_as_it_comes_through_in_your_form
Run Code Online (Sandbox Code Playgroud)
在:method
对象上调用时产生所需值的方法在哪里
所以按照上面的例子:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
示例中使用的代码将重置表单传递的@movie的值(:title).如果您需要访问电影的值(:标题),而不是重置它,请执行以下操作:
= simple_form_for @movie do |f|
= f.hidden :title, :value => params[:movie][:title]
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
再次只使用我的答案是你不想重置用户提交的值.
我希望这是有道理的.
归档时间: |
|
查看次数: |
114622 次 |
最近记录: |