是否有别名text_field
名称?
我使用的是form_for
,模型包含另外两个模型,每个模型都有相似的属性和方法名称。
类似的东西:
form_for(@model) do |f|
f.text_field :name
f.text_field :name as: :name2
end
答案 0 :(得分:1)
那么你所希望的是嵌套?例如。 model[name]
和model[sub_model][name]
是吗?如果是这样,那么您正在寻找fields_for
方法。 e.g。
<%= form_for(@model) do |f| %>
<%= f.text_field :name %>
<%= f.fields_for :sub_model do |sub_fields| %>
<%= sub_fields.text_field :name %>
<% end %>
<% end %>
这会将sub_model
传递给新FormBuilder
以进行嵌套,并输出很长的内容。
<form>
<input type="text" name="model[name]" id="model_name" />
<input type="text" name="model[sub_model][name]" id="model_sub_model_name">
</form>
答案 1 :(得分:0)
Fields_for允许您在同一表单中使用具有相同属性名称的两个模型。如果要为两个模型中的name属性指定不同的名称(标签),也可以使用label_tag来执行此操作。下面给出了这两种情况的代码供您参考。
form_for @modal1 do |f|
label_tag 'name'
f.text_field :name
f.fields_for :modal2 do |t|
label_tag 'name', 'New name'
t.text_field :name
end
end
如果这不是您所期望的,请发表评论并提供更多详细信息。