导轨3可以

时间:2014-09-08 09:53:11

标签: ruby-on-rails ruby-on-rails-3 authorization cancan

我正在使用可以根据角色限制用户使用gem 没有产品型号

class ProductsController < ApplicationController
    authorize_resource :class => false

   def index
     @customers=Customer.all
   end
end

in ability.rb

当我这样写的时候可以让我接受产品控制器

can [:index], :product

但是当我这样写的时候

can [:index], :products

它不允许我访问产品控制器

我怀疑控制器名称是产品,但我们需要编写产品的能力 并且有可能在ability.rb中写出复数?

提前致谢

1 个答案:

答案 0 :(得分:0)

这是在Cancan Non RESTful controllers中记录的(当你有一个没有相应模型的控制器时),文档示例显示:

class ToolsController < ApplicationController
  authorize_resource :class => false
  def show
    # automatically calls authorize!(:show, :tool) # Note the singular :tool
  end
end

所以,就像你已经想到的那样,你需要在Ability.rb

中传递奇异的资源符号
can :index, :product

您可以阅读有关此Github Ticket

的更多信息