当前位置:  开发笔记 > 数据库 > 正文

两个belongs_to关联迁移的相同模型

如何解决《两个belongs_to关联迁移的相同模型》经验,为你挑选了1个好方法。

如何为具有两个对同一模型的引用的模型创建迁移.

我有一个用户模型,有两个角色,买家和卖家,我也有一个销售模型,所以每个销售应该有一个买家和一个卖家.

我已经看到这个答案,这表明我的销售模式应该是这样的

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

但我不知道如何创建迁移并让它工作......!



1> Tobias..:

您必须创建以下迁移:

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

希望这可以帮助!

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有