Rails 3 - 根据自己的表列关联

时间:2012-06-04 15:56:26

标签: ruby-on-rails associations primary-key

我有这两个表:

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

但遗憾的是这不起作用......我没有指明这种关联,所以我不确定,是否有可能做到这一点......

我会感激每一个建议

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

需要在主键分配中添加=(无论如何,对于rails 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

感谢您的回答。这就是我在寻找的东西