CanCan不允许在Spree后端使用自定义操作/页面

时间:2015-10-22 16:41:44

标签: ruby-on-rails devise cancan spree

我在Spree中创建了一个新角色,并将CanCan限制为只有一个控制器。但是,它不允许访问自定义操作/页面。

create, delete, index etc

上述操作是可以访问的,但我的“干净”视图不是。

控制器 -

  def clean
    @handbags = Spree::Handbag.is_clean.page(params[:page]).per(50)
 end

AbilityDecorator -

  class AbilityDecorator
  include CanCan::Ability
  def initialize(user)
    if user.respond_to?(:has_spree_role?) && user.has_spree_role?('technical')
        can :manage, Spree::Handbag
    end
  end
end

Spree::Ability.register_ability(AbilityDecorator)

也尝试了 -

    can [:clean, :admin, :index etc..], Spree::Handbag

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我通过重写collection_actions并添加我需要的工作来解决这个问题 -

  def collection_actions
[:index, :clean, :repair, :colour]
  end