現在、モデルでカスタムメソッドを作成しようとしています。使用される条件は、has_manyアソシエーションの条件です。私がこれまでに持っている方法は次のとおりです。
class Dealer < ActiveRecord::Base
has_many :purchases
def inventory
inventory = Vehicle.where(:purchases => self.purchases)
return inventory
end
end
Vehicle has_many:purchasesがあるため、これは機能していません(したがって、車両モデルには「purchases」列がありません)。この種のクエリの条件として、Vehicle.purchases配列を使用するにはどうすればよいですか?
さらに複雑なことに、has_manyも多態性であるため、.join(:purchases)
VehiclePurchaseモデルがないため、クエリで要素を単純に使用することはできません。
編集:明確にするために、私の購入モデルと車両モデルの関連部分は以下のとおりです。
class Purchase < ActiveRecord::Base
attr_accessible :dealer_id, :purchase_type_id
belongs_to :purchase_item_type, :polymorphic => true
end
class Vehicle < ActiveRecord::Base
has_many :purchases, :as => :purchase_item_type
end