在Rails中的belongs_to关系中从子表单创建父记录

时间:2014-07-15 01:32:52

标签: ruby-on-rails forms

我有一个像has_many和belongs_to这样的关系:

class User < ActiveRecord::Base
  belongs_to :family
end 

class Family < ActiveRecord::Base
  has_many :users
end

当新用户注册时,他们会填写User模型的表单。我想要做的是使用表单中的Family字段自动创建新的User.last_name记录。 我不想提示他们填写表格中的任何家庭信息。

<% simple_form_for :user do |f| %>
  <%= f.input :first_name %>
  <%= f.input :last_name %>
  <%= f.input :email  %>
  <%= f.input :password %>
  <%= f.submit "Create My Account" %>
<% end %>

在相反的方向上,这将非常适合嵌套形式。但是,当您从孩子的表单创建父记录时,这是正确的解决方案吗?或者我应该在控制器的Family操作中创建并关联User#create吗?

1 个答案:

答案 0 :(得分:0)

如果您没有要求他们提供表格中的任何家庭信息,那么您不需要表格中的任何内容。您可以在控制器“创建”操作中完成所有操作。

def create
  @user = User.create(user_params)
  @user.create_family(whatever_field: @user.last_name)
  ... etc
end