使用 Rails 3.2。我有下表abc_id
应该参考xyz_id
。(注意:我无法控制更改大陆表。)
# shop table
id: 1 # primary
abc_id: 345
# continent table
xyz_id: 1 # primary
desc: "lalala"
xyz_id: 345 # primary
desc: "lorem"
我的协会:
# shop.rb
has_one :continent, foreign_key: 'xyz_id'
# continent.rb
self.primary_key = "xyz_id"
belongs_to :shop, foreign_key: 'abc_id'
但是当我运行以下命令时,我得到了这个:
@shop = Shop.find(1)
@shop.continent
# >> SELECT `continent`.* FROM `continent` WHERE `continent`.`xyz_id` = 1 LIMIT 1
为什么是continent
. xyz_id
不是345
吗?我做错了什么?