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)
? 我知道第一种方法行不通,但是第二种方法感觉有点脏。
编辑:抱歉,我意识到我过度简化了这个问题。我真的很想将 Make 上定义的类方法/范围应用于关联。调用ActiveRecord::Relation
方法,如where
,非常简单。即时启动了这个例子,但除了where
我想做的一个简单的电话之外,还有很多事情要做,再次道歉。