2012-02-01 52 views
0

是否有可能使has_one关系像这样工作?rails 3.1 - has_one,通过

我希望能够能够加载的记录是这样的:

@person = Person.find(1) => {Person id: 1, favorite_house_id: 10} 
@person.favorite_house => {House id: 10....) 

class Person < ActiveRecord::Base 
    has_many :houses, through: :person_houses 
    has_one :favorite_house, through: :person_houses  
end 

class PersonHouse < ActiveRecord::Base 
    belongs_to :house 
    belongs_to :person 
end 

class House < ActiveRecord::Base 
    has_many :people, through: :person_houses 
end 

回答

0

通过替换人的has_one关系:

belongs_to :favorite_house, :class_name => "House" 

不要忘记在表中创建一列favorite_house_id人。