我有通过成员连接表成为组的成员的用户,并且该连接表的属性之一是“管理员”。我试图在组的成员视图中进行检查,循环遍历每个成员以查看它们是否是管理员。通过连接表访问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