2012-07-09 47 views
0
User 
# 

Cars 
belongs_to :father, :class_name => "User" 
belongs_to :user 

user = User.find(1) 

伙计们的帮助,我可以通过键入user.cars(使用user_id搜索汽车)得到了用户的汽车,但我可以得到究竟怎么使用father_id搜索?的has_many多个外键搜索

显然我可以做一个Car.find_by_creator_id(...),但我想知道是否有铁路解决方案。

感谢

回答

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 

东西,你就可以访问与

u = User.find(1) 
cars = user.father_cars 
:father关系