2016-05-31 86 views
0

我有两个模型,一对多关联,Account,它有多个User如何在rails中添加一个表单,创建2个具有1对多依赖关系的模型?

我想为帐户注册表单,该帐户还会为该帐户创建第一个用户。

Account型号:

class Account < ActiveRecord::Base 
    has_many :users, dependent: :destroy 
    validates :name, presence: true, length: { maximum: 100 } 
end 

User型号:

class User < ActiveRecord::Base 
    belongs_to :account 
    validates :account_id, presence: true 

如何创建,创建一个帐户,并在同一时间的用户和需要去的形式我的accounts_controller和我的users_controller

回答

0

你可以通过Nested Forms来做到这一点,就像这样。

class Account < ActiveRecord::Base 
    has_many :users, dependent: :destroy 
    accepts_nested_attributes_for :users 
    validates :name, presence: true, length: { maximum: 100 } 
end 

在您的帐户表单中,使用“fields_for”助手为该帐户的用户添加字段。

 <div class="field"> 
2  <%= f.label :account_field1%><br> 
3  <%= f.text_field :account_field1%> 
4 </div> 
5 
6 <h2>Users</h2> 
7  <%= f.fields_for :users do |user| %> 
8   <div class="user_fields"> 
9   <div class="field"> 
10   <%= user.label :name %><br> 
11   <%= user.text_field :name %> 
12   </div> 
13  </div> 
14  <% end %> 

并在您的accounts_controller中添加users_attributes在控制器强参数白名单。

private 
def account_params 
    params.require(:account).permit(:account_field1, users_attributes: [ :id, :name ]) 
end 
相关问题