如何为具有两个对同一模型的引用的模型创建迁移.
我有一个用户模型,有两个角色,买家和卖家,我也有一个销售模型,所以每个销售应该有一个买家和一个卖家.
我已经看到这个答案,这表明我的销售模式应该是这样的
class Sale < ActiveRecord::Base belongs_to :buyer, :class_name => 'User', :foreign_key => 'buyer_id' belongs_to :seller, :class_name => 'User', :foreign_key => 'seller_id' end
但我不知道如何创建迁移并让它工作......!
您必须创建以下迁移:
rails g migration AddBuyerAndSellerToSales buyer:references seller:references
这应该创建以下迁移文件:
class AddBuyerAndSellerToSales < ActiveRecord::Migration def change add_reference :sales, :buyer, index: true, foreign_key: true add_reference :sales, :seller, index: true, foreign_key: true end end
如果你使用像PostgreSQL这样的数据库引擎,你必须告诉引擎外键将指向哪个表.
class AddBuyerAndSellerToSales < ActiveRecord::Migration def change add_reference :sales, :buyer, index: true # foreign_key: true <= remove this! add_reference :sales, :seller, index: true # foreign_key: true <= remove this! add_foreign_key :sales, :users, column: :buyer_id add_foreign_key :sales, :users, column: :seller_id end end
希望这可以帮助!