特别是一对多的关系

我有一个带有User模型和House模型的Rails 3.1应用程序(这就像一个组)。 我已经在这两者之间建立了多对多关联模型Membership关系,并且有一些方法可以管理连接模型中某个房屋中用户的角色。

但我的问题是用户只有一个房子而不是很多。 所以我总是要做user.houses.first来得到他的房子(我已经设置了一个帮助房子,但是设计不好所以我试图把has_one :membershiphas_one :house, :through => :membership而不是has_many :membershipshas_many :houses, :through => :memberships 。 但是每次我尝试从User访问house时我都会收到错误。

怎么可能像我试图做的那样用连接表设置这种一对多的关系?

先感谢您。

如果您打算使用一对多关系,那么关联应该是。

has_many :会员资格

has_many :users,:through =>:成员资格

用户

has_one :会员资格

has_one :house,:through =>:成员资格

我想不出用关系做这个的方法,但是你可以把它留作复数,然后在用户中定义house:

 class User has_many :memberships has_many :houses, :through => :memberships def house houses.first end end