首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3和Acl9:查找给定对象/角色的所有主题

Rails 3和Acl9:查找给定对象/角色的所有主题
EN

Stack Overflow用户
提问于 2010-11-21 21:27:59
回答 2查看 671关注 0票数 1

我使用rails3acl9进行授权。我正在尝试ARel和rails查询的方式。

我有一个属于公司的用户,用户在公司上有一个给定的角色(acl9提供管道)。如何才能让具有特定角色的给定公司的所有用户?--我想在DB中过滤结果,而不是在应用程序中过滤它们。

我想要这样的东西:

代码语言:javascript
复制
# 
# authorizable_id = 1 is the company's id
# 'collaborator' and '1' would be params for my scope
#
select * from users
inner join roles_users
on roles_users.user_id = users.id
inner join roles
on roles_users.role_id = roles.id
where roles.authorizable_type='Company'
and   roles.authorizable_id = 1
and   roles.name = 'collaborator';

#usage with scope
@collaborators = User.with_role_and_company('collaborator',current_user.company)

我知道rails3有一个sql,但是我来自一个Java/Grails地方,我使用的大多数ORMs都有一些ORMs(我想datamapper是这样工作的,但我使用的是普通的rails3)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-23 00:14:57

我发现:

代码语言:javascript
复制
 class << self
   def with_role_in_company(role, company)
      joins(:roles).
          where(:roles => {:authorizable_type => 'Company'}).
          where(:roles => {:authorizable_id => company.id}).
          where(:roles => {:name => role})
    end
  end
票数 1
EN

Stack Overflow用户

发布于 2015-01-22 21:18:51

我还在acl9 1.2中添加了这个特性,所以现在您可以这样做了:

代码语言:javascript
复制
company.users :collaborator
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4240468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档