cancan无法识别读取操作和拒绝消息

时间:2012-10-16 10:13:54

标签: ruby-on-rails cancan

我有routes.rb:

resource :account, :only => [:show, :update]

在我的能力.rb中,我有

can :read, Account, :id => user.account_id

我在AccountsController中定义了def update和def show函数

当我对/ account执行GET请求时,此配置为我提供403,拒绝访问错误。但是,如果我将我的能力.rb改为

can :manage, Account, :id => user.account_id

它工作正常。我的:show函数没有被映射到的任何原因:read?

1 个答案:

答案 0 :(得分:0)

好吧,我弄清楚问题是什么。所以这笔交易是我打电话给康康的授权!我自己对我的代码有一些约束,我正在传递像

这样的东西
authorize!("show", @class_obj)

但实际上CanCan期望一个符号,所以正确的调用应该是

authorize!(:show, @class_obj)

可以这样实现:

authorize!("show".intern, @class_obj)