无法在 rails 中使用 cancan gem 访问模型

Unable to access model using cancan gem in rails

我正在使用 Spree 构建电子商务 application.I 已经创建了一个模型 Offer(Spree::Offer) 。我已经创建了一个卖家角色,我正在尝试使用以下代码在管理面板中授予卖家查看、更新和管理此模型(报价)的权限

if user.respond_to?(:has_spree_role?) and user.has_spree_role?('supplier') > can :manage,Offer

但是当我以卖家身份登录时,我无法在管理面板中看到优惠选项卡 但是,当我以管理员身份登录时,我可以看到优惠 Tab.Admin 具有以下访问权限

can :manage,:all

我是 rails 的新手,我应该先做些什么才能得到想要的结果

你需要像这样定义能力,因为报价模型在狂欢模块下,然后你可以访问 Spree::Offer 资源。

if user.respond_to?(:has_spree_role?) and user.has_spree_role?('supplier') 
  can :manage, Spree::Offer
end