2013-03-11 24 views
0

我有兩個模型,其中一個具有「id」作爲主鍵。第二個模型沒有「id」作爲主鍵。而是有一個複合鍵。如何加入這些?Rails加入(包括)其中「id」不存在於一個表中並且具有不同主鍵的表

class A < ActiveRecord::Base 
    has_one :B, :order => "dt DESC" 
end 

class B < ActiveRecord::Base 
    belongs_to :A, :foreign_key => :emp_id 
end 

emp_id充當外鍵。 在A的控制器中,

arel = A.includes(:b) 

失敗。 我獲得以下錯誤,

ActiveRecord::StatementInvalid (Mysql2::Error: Unknown column 'b.id' in 'field list': SELECT a . id AS t0_r0,....

我應如何處理?

回答

0

嘗試在belongs_tohas_one上設置primary_key

這些選項的詳細信息,可以發現,

ActiveRecord belongs_to

ActiveRecord has_one

+0

這樣做,仍然沒有任何幫助。編輯帖子了。 – sumitshining 2013-03-11 11:23:08

+0

急切加載是否總是尋找所有帶有「id」字段的表格作爲管理? – sumitshining 2013-03-11 11:30:29

+0

如何在'B'模型中設置'self.primary_key'。您必須使用'composite_primary_keys' gem,因爲ActiveRecord不支持組合鍵。請參閱https://github.com/drnic/composite_primary_keys – Sam 2013-03-11 11:42:43

相關問題