我在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