铁轨中的非常规外键

时间:2010-08-11 22:44:50

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

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

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

相关的文档

2 个答案:

答案 0 :(得分:0)

:foreign_key

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

:primary_key

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

一切都取决于表格中的行

答案 1 :(得分:0)

解决方案结束了:

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

假设:foreign_key与某事有关,我被引向错误的轨道。