Rails has_many/belong_to 协会

Rails has_many/belong_to Associations

has_many belongs_to 或任何关联:

  1. 两个模型中先创建哪个对象有关系吗?
  2. 是否有关于应该先创建哪个的约定?

你说的是一对多关系。

Parent has_many ChildrenChild belongs_to Parent

关系是在创建表后在模型中建立的。因此,创建实际表格的顺序并不重要。

我通常会先创建两者中更受控制的,例如创建用户,然后再创建任何关系。但同样,没有任何理由要求创建它们。

不,先创建哪个并不重要,因为Rails会为您解决正确的顺序。

在 belongs_to / has_one 关联的情况下

class Parent < ActiveRecord::Base
  has_many :children
end

class Children < ActiveRecord::Base
  belongs_to :parent
end

p = Parent.new(name: 'Jhon')
p.children << Children.new
p.save
(0.3ms)  BEGIN
 SQL (27.1ms)  INSERT INTO `parents` (`name`) VALUES ('Jhon')
 SQL (23.1ms)  INSERT INTO `childrens` (`parent_id`) VALUES (7842)
(95.0ms)  COMMIT