2017-03-02 73 views
0

除了詢問其名稱是否以_id結尾?我可以測試ActiveRecord的屬性是否是外鍵?

如果我要以上述方式測試屬性,是否可以推廣?這樣做對我目前的使用情況來說已經足夠了。但是我可能會在另一個宇宙中想要製造我鍛造的一些工具的寶石。我猜那些真正想用外鍵創建模型的人不會以_id結束。 D-Side向我指出this

按照慣例,Rails的假設,用於保存這個模型外 鍵的列是後綴添加_id 協會的名稱。該:foreign_key選項,您可以直接設置外 鍵的名稱

有沒有一種方法來檢測,其中有人已經用第二個選項的情況下?

回答

1

你應該能夠得到外鍵列表的東西,如:

all_reflections = self.class.reflections. 
         select{ |n, r| r.macro == :belongs_to }. 
         map{ |name, reflection| reflection.foreign_key } 

如果你要經常做,我會緩存結果

相關問題