2012-06-04 41 views
0

我有這兩個表:的Rails 3 - 根據聯想自己的表列

colors 
- id 
- name 
- name_code 

cars 
- id 
- manufacturer 
- color_code_name 

(在列colors.name_codecars.color_code_name是相同的值)

我想獲得的所有汽車與各顏色。我試圖建立這些協會:

class Color < ActiveRecord::Base 
    has_many :cars, :primary_key => "name_code" 
end 
class Car < ActiveRecord::Base 
    belongs_to :color, :primary_key => "color_code_name" 
end 

但是,這是不幸的是沒有工作......我沒有指定尚未這種關聯關係,所以我真的不知道,如果有可能做到這一點...

我會很感激每一個建議

+0

我想你可能只需要反轉你指定'name_code'和'color_code_name'的地方。不過,如果不知道你得到的錯誤信息,很難確定。 – Emily

回答

1

試試這個:

class Color < ActiveRecord::Base 
    self.primary_key :name_code 
    has_many :cars, :foreign_key => :color_code_name 
end 

class Car < ActiveRecord::Base 
    self.primary_key :color_code_name 
    belongs_to :color, :foreign_key => :color_code_name 
end 
+0

這使我朝着正確的方向 – user984621

+0

建議使用'self.primary_key ='而不是'set_primary_key'。 – jdoe

+0

謝謝jdoe。根據您的建議更改。 – Anil

0

需要添加=在主鍵分配(軌道3.1反正)

class Color < ActiveRecord::Base 
    self.primary_key = :name_code 
    has_many :cars, :foreign_key => :color_code_name 
end 

class Car < ActiveRecord::Base 
    self.primary_key = :color_code_name 
    belongs_to :color, :foreign_key => :color_code_name 
end 

感謝您的回答。這是我正在尋找