2011-11-22 91 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