0

我正在开发一个应用程序,Rails 3.2.11并且正在使用 Devise 和 CanCan。

我在ability.rb文件中设置权限,所以用户只能管理属于他公司的项目,一切似乎都很好。

  • 我的用户belongs to为公司模型建模。
  • 本公司可have many为客户提供型号。

我想知道是否有一种方法可以Client.all使用范围或 gem 或其他方式自动执行查询Order.all. 这可能吗?如果没有,最好的方法是什么?非常感谢您提前。

4

2 回答 2

1

我希望我没有误解,但是写一个方法呢?

如果要获取用户客户端(属于用户公司)

用户.rb
def fetch_clients
  Clients.find_all_by_company(company) # your query here
end

在您的控制器中,您可以简单地:

@clients = @user.fetch_clients

订单也是如此

感谢 SybariteManoj,他指出(假设您的查询并不复杂):

@user.company.clients should return the same result
于 2013-01-29T09:55:51.617 回答
0

CanCan 有一个叫做accessible_by. 这可能是你要找的吗?

在此处阅读更多信息:https ://github.com/ryanb/cancan/wiki/Fetching-Records

于 2013-01-29T11:00:09.927 回答