Rails可以在表单中有几个fields_for?

时间:2014-11-29 09:33:01

标签: ruby-on-rails model nested-forms

两个模型是belongs_to和has_many关联。如:

class User < ActiveRecord::Base
  has_many :user_infos
end 

class UserInfo < ActiveRecord::Base
  belongs_to :users
end

因此,我构建了一个表单,我想创建一个包含多个user_infos的用户帐户。 我可以使用嵌套表单在表单中执行此操作吗?

但是,如果我不确定有多少:user_infos?

1 个答案:

答案 0 :(得分:1)

是的,你可以。这取决于您想要创建多少user_infos。例如:

在您的控制器的new方法中:

def new
  @user = User.new
  3.times{ @user.user_infos.build }
end

以您的形式:

<%= form_for @user do |f| %>
  <%= f.text_field :email %>
  <%= f.fields_for :user_infos do |uif| %>
     <%= uif.text_field :name %>
  <% end %>
<% end %>

这将在带有文本字段名称的表单上创建3 user_infos

相关问题