2011-11-22 88 views
0

我有点为我的模型的设置挣扎。我有许多用户有很多关系的公司。当我在一个视图中展示关系时,它应该只显示属于公司的关系(否则来自其他公司的用户也会看到它们!)。我目前的模式设置为:公司用户关系模型的设置模型

公司的has_many用户 用户belong_to公司

公司的has_many关系 关系belong_to公司

用户的has_many关系 关系belong_to用户

我在想,当用户已登录,您应该能够请求“current_user.relations”之类的内容,并且由于模型关系,它只会显示当前登录用户的公司关系。这是真的吗?我该如何实现?

干杯, 约翰

回答

0
class User < ActiveRecord::Base 
    belongs_to :company 
end 

class Company < ActiveRecord::Base 
    has_many :relations 
end 

然后在控制器:

current_user.company.relations 

将返回用户公司的关系。

+0

谢谢。但是,当我然后要求关系的联系人时,我会假设它将是“current_user.company.relations.contacts.find:all”,但是返回“无法找到关联模型Company中的关联”错误。 (公司has_many:contacts,:through =>:关系和联系belongs_to关系) – John

+0

使用'current_user.company.contacts'作为您在'Company'上定义'contacts',而不是'has_many:contacts,:through =>:关系'使用'has_many:联系人,:通过=>:关系' –

+0

再次感谢!哇,不知道复数可能会造成这种差异... – John