我是Ruby和Ruby on Rails的新手.我正在尝试找到一种方法来获取由hidden_field助手创建的输入字段上使用的id,因为我需要添加一些javascript,它使用jquery通过id获取输入字段.
我有两个模型>人和地址.Person has_one地址和地址具有zip_code属性.
我正在使用以下代码生成带有隐藏字段的表单:
<%= form.fields_for :address do |form| %>
<%= form.hidden_field :zip_code %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这会生成以下html:
<input class="text" id="person_address_attributes_zip_code" name="person[address_attributes][zip_code]" type="hidden" />
Run Code Online (Sandbox Code Playgroud)
是否有任何方法或帮助器给我用于给定属性的字段的id?例如,我需要知道:zip_code生成的id是"person_address_attributes_zip_code".
提前谢谢了.布鲁诺
表单构建器可以访问对象名称,您可以使用它来获取生成的ID,前提是您知道字段名称.我在Rails 3中测试了这个:
<%= form.fields_for :addresses do |form|%>
<%= "#{form.object_name}[zip_code]".gsub(/(\])?\[/, "_").chop %>
<%= form.text_field :zip_code %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
最简单的方法是强制 id 为您想要的任何内容,例如:
<%= form.hidden_field :zip_code, :id => 'zip_code' %>
Run Code Online (Sandbox Code Playgroud)
name 字段用于请求参数中,因此 id 字段设置为什么并不重要。
Rails 3中确定id的方法在actionpack/lib/action_view/helpers/form_helper.rb中,主要在InstanceTag模块中。大多数是主模型名称的变体,经过清理以删除特殊字符,后跟下划线,然后是经过清理的字段名称,但嵌套模型和属性增加了额外的复杂性。
| 归档时间: |
|
| 查看次数: |
3622 次 |
| 最近记录: |