非模型形式的简单隐藏字段

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).

有没有办法在较少的参数中执行此操作(除非定义帮助程序)?

Jim*_*dra 6

我将hidden_field_tag根据每个表单的不同值手动使用和设置ID.像这样:

<%= hidden_field_tag :field_name, 'value', :id => 'field_name_' + unique_value %>
Run Code Online (Sandbox Code Playgroud)

哪里unique_value可以是任何东西.如果这些表单具有他们引用的某种父记录,则它可以是父记录的ID.我假设这就是为什么你首先在同一页面上有多个相似的表单.