User
#
Cars
belongs_to :father, :class_name => "User"
belongs_to :user
user = User.find(1)
伙计帮助我可以通过键入user.cars
(使用user_id
搜索汽车)来获取用户的汽车,但我怎样才能使用father_id进行搜索?
显然我可以做Car.find_by_creator_id(...)
,但我想知道是否有一个有道理的解决方案。
由于
答案 0 :(得分:1)
您可以设置关系的另一面,并为:inverse_of
模型中的每一个指定User
。像
class User < ActiveRecord::Base
has_many :father_cars, :class_name => "Car", :inverse_of => :father
has_many :cars, :inverse_of => :user
# ...
end
Cars < ActiveRecord::Base
belongs_to :father, :class_name => "User", :inverse_of => :father_cars
belongs_to :user, :inverse_of => :cars
# ...
end
然后,您可以使用
访问:father
关系
u = User.find(1)
cars = user.father_cars