如何创建一个记录,当它取决于另一个记录
问题描述:
我有2个模型,他们每个人都依赖于另一个。如何创建一个记录,当它取决于另一个记录
class Company < ActiveRecord
belongs_to :user
end
class User < ActiveRecord
belongs_to :company
end
该公司有一个必需的user_id列。 用户有一个必需的company_id列。
如何创建公司和用户时,他们都相互依赖?
答
在你scenarion这种关系被称为many to many relationship
,您可以创建中间表之间的这种所谓的users_companies
既表
的外键欲了解更多详细信息,请参阅此链接Associations
例如像
class Company < ActiveRecord
has_many :users_companies, dependent: :destroy
has_many :users, through: users_companies
end
class User < ActiveRecord
has_many :users_companies, dependent: :destroy
has_many :companies, through: users_companies
end
class UsersCompany < ActiveRecord
belongs_to :user
belongs_to :company
# This model have two foreign key
user_id and company_id
end
答
使用虚拟值伪造其中一个对象有效
company=Company.create(user_id: dummy)
user=User.new
user.company = company
user.save
company.update_attribute(user_id: user.id)
我认为连接表应该是companies_users,都是复数。按字母顺序排列。 http://guides.rubyonrails.org/association_basics.html#creating-join-tables-for-has_and_belongs_to_many-associations –