【问题标题】:Creating a parent record from a child form in a belongs_to relationship in Rails从 Rails 中的 belongs_to 关系中的子表单创建父记录
【发布时间】:2014-07-15 01:32:52
【问题描述】:

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

class User < ActiveRecord::Base
  belongs_to :family
end 

class Family < ActiveRecord::Base
  has_many :users
end

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

<% 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 %>

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

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 2013-07-27
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多