class User < ActiveRecord::Base
has_many :vehicles
end
class Vehicle < ActiveRecord::Base
belongs_to :user
belongs_to :make
end
class Make < ActiveRecord::Base
has_many :vehicles
end
では、その特定のメーカーの のすべての車両のみMakesController#show
を表示したいと考えています。current_user
そのように関連付けでそれを行う方法はありますか:
current_user.vehicles.find_by_make(@make)
または、私は次のようなことを余儀なくされています:
Vehicle.find_by_user_and_make(current_user, @make)
? 最初の方法がうまくいかないことはわかっていますが、2 番目の方法は少し汚れているように感じます。
編集: 申し訳ありませんが、質問を単純化しすぎていることに気付きました。Makeで定義されたクラスメソッド/スコープを関連付けに適用したいと思います。ActiveRecord::Relation
のようなメソッドの呼び出しwhere
は非常に簡単です。where
この例はその場で作成しましたが、単純な呼び出し以外にもやりたいことがたくさんあります。もう一度お詫びします。