2014-09-23 74 views
0

是否有别名text_field的名字?Rails alias text_tag name

我使用的是form_for,模型包含两个其他模型,每个模型都有相似的属性和方法名称。

喜欢的东西:

form_for(@model) do |f| 
    f.text_field :name 
    f.text_field :name as: :name2 
end 
+2

你指的是'label_tag'吗?你有没有看过任何[Form Helper Docs](http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-label_tag)?这些都很容易处理。或许可以澄清一下你的问题或者发布一些代码来帮助我们,因为现在的问题非常模糊 – engineersmnky 2014-09-23 16:40:43

+0

对不起,我刚刚离开工作时,当我问,所以冲了。我已经更详细地编辑了这个问题,它应该说'text_field' – 2014-09-23 17:52:14

回答

1

那么你所希望的是筑巢?例如。 model[name]model[sub_model][name]是吗?如果是这样,那么你正在寻找fields_for方法。例如

<%= 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> 
0

Fields_for允许您在具有相同属性名称的同一表单中使用两个模型。如果您想为两个模型中的名称属性赋予不同的名称(标签),则也可以使用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 

请评论,并提供一些更多的细节,如果这不是你所期待的。