0
我试图做一个注册表单,您可以同时创建一个用户和一个公司。我有一个用户表和一个公司表。公司和用户以一种形式创建
用户模型
belongs_to :companies
accepts_nested_attributes_for :companies
公司模型
has_many :users
用户控制器
def new
@users = User.new
@companies = Company.new
end
def create
@companies = Company.create(company_params)
@users = @companies.user.create(user_params)
@users.save
redirect_to :back
end
private
def user_params
params.require(:user).permit(:name)
end
def company_params
params.require(:user).permit(:name)
end
路线
resources :users
resources :companies
new.html.erb
<%= form_for(@users) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.fields_for @companies do |build| %>
<%= build.text_field :name %>
<% end %>
<%= f.submit %>
<% end %>
所以这个创建公司,并在同一时间的用户。但是我想给用户分配一个company_id,它属于他们刚创建的公司。我的用户表中有company_id字段。有任何想法吗?
UPDATE
def create
@companies = Company.create(company_params)
c = Company.last
@users = c.users.create(user_params)
@users.save
redirect_to :back
end
我这样做是添加到用户控制器在它的工作原理,但它并不似乎是最好的解决办法。如果我错了,请纠正我。
在此先感谢