特别是一对多的关系

时间:2011-08-16 14:27:02

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

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

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

如何使用我想要的连接表设置这种一对多关系?

提前谢谢。

2 个答案:

答案 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