在控制器外部使用CanCan和accessible_by

时间:2012-01-26 07:11:04

标签: ruby-on-rails cancan

我在为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之外工作?

1 个答案:

答案 0 :(得分:1)

应该一直在调用Test.accessible_by(current_ability, :index) - 很多调试最终都给了我答案。