我在为HABTM关系定义CanCan能力时遇到问题,以便当我不在对象的控制器中时它将与accessible_by
方法一起使用
我的模型如下:
Test <--HABTM--> Organisation <--belongs_to-- User
所以我试图限制:read
对Job对象的访问,如下所示:
can :read, ImplicitTest, :organisations => { :id => user.organisation_id }
这适用于测试索引页面 - 仅显示正确的测试。但是,当我尝试通过调用Test.accessible_by(current_ability, current_user)
在另一个控制器中的视图上下拉此列表时,它似乎产生了一些奇怪的SQL:
SELECT "tests".* FROM "tests" WHERE ('t'='f')
有没有办法让这个调用在TestsController之外工作?
答案 0 :(得分:1)
应该一直在调用Test.accessible_by(current_ability, :index)
- 很多调试最终都给了我答案。