我有一个带有User
模型和House
模型的Rails 3.1应用程序(这就像一个组)。我在这两者之间建立了一个多对多的联接模型Membership
,并且有一些方法可以管理连接模型中某个房屋中用户的角色。
但我的问题是用户只有一个房子而不是很多。所以我总是要做user.houses.first来得到他的房子(我已经建立了一个帮助房子,但是设计不好所以我试图把has_one :membership
和{{1而不是has_one :house, :through => :membership
和has_many :memberships
。但是每次我尝试从has_many :houses, :through => :memberships
访问房屋时都会收到错误。
如何使用我想要的连接表设置这种一对多关系?
提前谢谢。
答案 0 :(得分:2)
如果您要使用一对多关系,那么关联应该是。
家
has_many :会员资格
has_many :users,:through => :成员
用户
has_one :会员资格
has_one :house,:through => :会员资格
答案 1 :(得分:0)
我想不出用关系做这个的方法,但是你可以把它留作复数,然后在用户中定义房子:
class User
has_many :memberships
has_many :houses, :through => :memberships
def house
houses.first
end
end