0

私はこれらの2つのテーブルを持っています:

colors
- id
- name
- name_code

cars
- id
- manufacturer
- color_code_name

(列colors.name_codeにありcars.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

しかし、残念ながらこれは機能しません...私はまだこの種の関連付けを指定していなかったので、それが可能かどうかはよくわかりません...

私はすべてのアドバイスに感謝するつもりです

4

2 に答える 2

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
于 2012-06-04T16:06:09.887 に答える
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

答えてくれてありがとう。それは私が探していたものでした

于 2012-09-12T17:29:59.527 に答える