Cho*_*ett 3 forms ruby-on-rails
Ruby-on-Rails中最简单的方法是创建几个简单的隐藏字段,其中包含已知值和多个非模型形式的相同名称(在我的情况下为form_remote_tag,但我猜这是不相关的)?
通过"简单的隐藏字段",我的意思是名称只是一个字符串(field_name)而不是数组(field_name[])的一部分,因此可以简单地从params哈希中读取值,params[:field_name]而不是params[:field_name][0].
我发现了
<% form_remote_tag :url => {:action => "do_act"} do %>
<%= hidden_field :field_name, 0, :name => "field_name", :value => "foo" %>
<%= submit_tag "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
生成一个可接受的元素(<input id="field_name_0" name="field_name" type="hidden" value="foo" />),但如果省略该:name参数,则渲染字段具有名称field_name[0].省略0显然会导致奇怪的行为.
<%= hidden_field_tag :field_name, "foo" %> 如果只有一个这样的表单,则生成一个可接受的元素,但如果有多个表单,则生成HTML警告(重复的ID).
有没有办法在较少的参数中执行此操作(除非定义帮助程序)?
我将hidden_field_tag根据每个表单的不同值手动使用和设置ID.像这样:
<%= hidden_field_tag :field_name, 'value', :id => 'field_name_' + unique_value %>
Run Code Online (Sandbox Code Playgroud)
哪里unique_value可以是任何东西.如果这些表单具有他们引用的某种父记录,则它可以是父记录的ID.我假设这就是为什么你首先在同一页面上有多个相似的表单.
| 归档时间: |
|
| 查看次数: |
5014 次 |
| 最近记录: |