我在MYSQL中使用了一些打开的gov数据,我已经导入到我的rails应用程序中。ActiveRecord双向外键。
我已经用我自己的一些表扩展了数据库,并在我的表中使用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的方法吗?
我还没有尝试过,但我仍然需要在其他查询中使用_id字段,因为并非所有东西都通过'ndb'字段链接,这就是我的意思是'扩展数据库以使用我的一些自己的表',所以70%的时间,我使用标准的轨道ID,但有时我需要链接'ndb到NDB' – pedalpete 2011-04-19 17:59:00
那么,使用set_primary_key为那些需要它的表将是一个开始,让事情像find()一样工作。它还会设置关联的默认值。 – noodl 2011-04-19 18:05:12
对不起,也许我不清楚。对于像食物表这样的东西,我使用id字段70%的时间(坚持使用rails标准),另外30%的时间使用id字段,我需要将食物表链接到另一个表,如通过ndb字段的重量。在模型上设置set_primary_key会打破这些关系的70%。除非我错过别的东西。一旦我设置'ndb'作为主键,我似乎无法将两个带ID的表连接到food_id – pedalpete 2011-04-19 18:46:27