0
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この例はその場で作成しましたが、単純な呼び出し以外にもやりたいことがたくさんあります。もう一度お詫びします。

4

2 に答える 2