我一直在寻找Rails 4.1应用程序中的解决方案,所以这是我的问题:
在Rails应用程序中,我有我的模型User和Adress。
class User < ActiveRecord::Base
has_many :adresses
accepts_nested_attributes_for :adresses
class Adress < ActiveRecord::Base
belongs_to :user
accepts_nested_attributes_for :user
在我的表单中,我为用户制作了一个form_tag,没问题。
但是,我如何以表格形式向最终用户显示2个地址字段?
我使用<%= f.fields_for :adress %>
来显示一个,没关系。但是,如果我显示两个表格(因此用户可以输入2个地址),则它们具有相同的名称,请求帖子只保留一个。
我在http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for
阅读了该文档但是,我仍然没有得到它。
有没有正确的方法呢?
谢谢
答案 0 :(得分:0)
我建议你在新动作中准备两个地址,将它们添加到使用中,然后在形式中用foreach重新编写它。
我在这里找到了这种解决方案:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for
由于你有多个地址,我认为foreach是可行的。
答案 1 :(得分:0)
所以,为了帮助Rails中的任何人,并采用与我相同的方式:
在您的控制器中:
@user = User.new
@user.adresses = Adress.new, Adress.new
在您看来,表格:
<%= form_for @user do |f| %>
<%= f.fields_for :adresses do |a| %>
<%= wp.text_field :name %>
<% end %>
<% end %>
将为地址打印两次名称字段。
(再次感谢@NickCatib)