我正在开发一个应用程序,Rails 3.2.11
并且正在使用 Devise 和 CanCan。
我在ability.rb
文件中设置权限,所以用户只能管理属于他公司的项目,一切似乎都很好。
- 我的用户
belongs to
为公司模型建模。 - 本公司可
have many
为客户提供型号。
我想知道是否有一种方法可以Client.all
使用范围或 gem 或其他方式自动执行查询Order.all
. 这可能吗?如果没有,最好的方法是什么?非常感谢您提前。
我正在开发一个应用程序,Rails 3.2.11
并且正在使用 Devise 和 CanCan。
我在ability.rb
文件中设置权限,所以用户只能管理属于他公司的项目,一切似乎都很好。
belongs to
为公司模型建模。have many
为客户提供型号。我想知道是否有一种方法可以Client.all
使用范围或 gem 或其他方式自动执行查询Order.all
. 这可能吗?如果没有,最好的方法是什么?非常感谢您提前。
我希望我没有误解,但是写一个方法呢?
如果要获取用户客户端(属于用户公司)
用户.rbdef 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
CanCan 有一个叫做accessible_by
. 这可能是你要找的吗?
在此处阅读更多信息:https ://github.com/ryanb/cancan/wiki/Fetching-Records