Rails4 アプリで、動的な関連付けを作成したいと考えています。
私は次のモデルを持っています:
class Pilot < ActiveRecord::Base
has_many :cars
end
class Cars < ActiveRecord::Base
belongs_to :pilot
end
車には属性の色があり、使用可能な色と同じ数の関連付けを作成したい
たとえば、赤い車が 1 台、青い車が 2 台、緑の車が 1 台ある場合、パイロット モデルに含めたいと思います。
has_many :red_cars
has_many :blue_cars
has_many :green_cars
ポイントは、ピックアップされる色がわからないことです。
それを実装することは可能ですか?
ありがとう。
アップデート
私はおそらく次のようなことができると思います
#untested. Written just now
Car.all.map(&:color).uniq.each do |color|
has_many "#{color}_cars".to_sym, -> { where(color: '#{color}') }, class_name: 'Car'
end
より良いものがない場合。