Ruby on rails 在控制器外部使用CanCan和可访问_

Ruby on rails 在控制器外部使用CanCan和可访问_,ruby-on-rails,cancan,Ruby On Rails,Cancan,我在定义HABTM关系上的CanCan能力时遇到了问题,因此当我不在对象的控制器中时,它将通过方法与可访问_一起工作 我的模型如下: Test <--HABTM--> Organisation <--belongs_to-- User can :read, ImplicitTest, :organisations => { :id => user.organisation_id } 这适用于测试索引页-仅显示正确的测试。但是,当我试图通过调用Test.a

我在定义HABTM关系上的CanCan能力时遇到了问题,因此当我不在对象的控制器中时,它将通过方法与可访问_一起工作

我的模型如下:

    Test <--HABTM--> Organisation <--belongs_to-- User
can :read, ImplicitTest, :organisations => { :id => user.organisation_id }
这适用于测试索引页-仅显示正确的测试。但是,当我试图通过调用
Test.accessible\u by(current\u ability,current\u user)
在另一个控制器中的视图上下拉此列表时,似乎会产生一些奇怪的SQL:

从“测试”中选择“测试”。*其中('t'='f')


有什么方法可以让这个调用在TestsController之外工作吗?

应该调用
Test.accessible\u by(current\u ability,:index)
-大量的调试最终得到了答案