我有通過成員連接表成爲組的成員的用戶,並且該連接表的屬性之一是「管理員」。我試圖在組的成員視圖中進行檢查,循環遍歷每個成員以查看它們是否是管理員。通過連接表訪問has_many中的值
在視圖中我嘗試了以下內容:
for user in @group.users
if user.administrator?
...DO STUFF
end
end
我也試過這個控制器:
@administrators = @group.memberships.find(:all, :conditions => ["administrator = 1"])
,但沒有運氣。有什麼想法嗎?
更新 - 每下面,把一個方法到用戶模式:
def is_administrator_of(group_id)
Membership.find(:first, :conditions => ['user_id = ? AND group_id = ? AND administrator = ?', self[:id], group_id, true])
end
通過非常小的修改,這工作真棒。不確定是否有正確的方法去實現,但效果很好。謝謝! Membership.find(:first,:conditions => ['user_id =?AND group_id =?AND administrator =?',self [:id],group_id,true]) – 2010-02-16 00:29:12