我在MYSQL中使用了一些开放的gov数据,我已将其导入到我的rails应用程序中。
我已经使用我自己的一些表扩展了数据库,并在我的表中使用rails提供的列id。
但是,原始数据库的表通过唯一的“ndb”id链接。
我认为通过在模型之间交叉引用两个:foreign_key=>'ndb'
我可以正确地链接表,但是通过:foreign_key
,它似乎是将一个表中的id链接到ndb列另一个。
我的模特看起来像这样
class Food < ActiveRecord::Base has_many :weights, :foreign_key=>'ndb' has_many :food_names end class Weight < ActiveRecord::Base belongs_to :food, :foreign_key=>'ndb'
有没有办法指定'ndb'列是食物和重量表之间的链接,而不是food_id到ndb的链接?
答案 0 :(得分:0)
您是否在AR课程中尝试了set_primary_key 'ndb'
?
set_primary_key docs。
答案 1 :(得分:0)
我作为可能的临时解决方案所做的是使用:finder_sql
将表链接在一起。
我的食物模型现在有:
class Food < ActiveRecord::Base has_many :weights, :finder_sql =>'Select weights.* FROM weights LEFT JOIN foods ON foods.ndb=weights.ndb WHERE foods.id=#{id}'
我不确定这是否是最佳解决方案,但似乎有效。