我有一种带有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
相关的文档答案 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
与某事有关,我被引向错误的轨道。