【问题标题】:unconventional foreign keys in rails轨道中的非常规外键
【发布时间】:2010-08-11 22:44:50
【问题描述】:

我有一种带有导轨的遗留数据库结构。 它的结构如下:

apples
    id:
    number:
  oranges
    apple_id: (links to apples.number)
  pears
    apple_id: (links to apples.id)

型号如下:

Apple  has_many :oranges, :foreign_key => ?, :primary_key => ?
       has_many :pears
Orange belongs_to :apple, :foreign_key => ?, :primary_key => ?
Pears  belongs_to :apple

我不知道如何编写关联。我很难理解有关外键和主键的文档以及与 has_many 和 belongs_to 相关的文档

【问题讨论】:

    标签: ruby-on-rails foreign-keys associations


    【解决方案1】:

    :foreign_key

    指定用于关联的外键。默认情况下,这被猜测为这个类的小写名称和“_id”后缀。因此,建立 has_many 关联的 Person 类将使用“person_id”作为默认值:foreign_key。

    :primary_key

    指定返回用于关联的主键的方法。默认情况下,这是 id。

    一切都取决于表中的行

    【讨论】:

    • 我得到你的数据库结构了吗?
    • 正如我从您的问题中看到的,您的表中有常规行,所以我不明白您为什么要指定 :foreign_key 和 :primary_key 的值
    【解决方案2】:

    解决办法是:

    Apple  has_many :oranges, :primary_key => :number
           has_many :pears
    Orange belongs_to :apple, :primary_key => :number
    Pears  belongs_to :apple
    

    假设:foreign_key 与某事有关,我被误导了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-04
      • 2012-11-12
      • 2013-10-26
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      相关资源
      最近更新 更多