我有两个具有1对多关联的模型,Account
有多个User
。
我想为帐户创建一个注册表单,同时为该帐户创建第一个用户。
我的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 :(得分:0)
您可以通过嵌套表单执行此操作。
class Account < ActiveRecord::Base
has_many :users, dependent: :destroy
accepts_nested_attributes_for :users
validates :name, presence: true, length: { maximum: 100 }
end
在您的帐户使用表格中使用&#34; fields_for&#34;帮助者为该帐户的用户添加字段。
<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