我在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
感谢您的帮助。
答案 0 :(得分:0)
我通过重写collection_actions并添加我需要的工作来解决这个问题 -
def collection_actions
[:index, :clean, :repair, :colour]
end