如何在葡萄中使用CanCan?

Vad*_*nko 2 ruby ruby-on-rails cancan ruby-on-rails-4 grape-api

我想在我的API中使用CanCan进行授权.我怎样才能使用authorize!Grape :: API模块中的方法?现在,当我尝试使用它时,它会返回给我: undefined method 'authorize!' for #<Grape::Endpoint:0xca39664>

Dmi*_*dov 7

好的,authorize!是一个补充ActionController::Base,请参阅此来源

你可以定义自己的Grape助手:

class API < Grape::API
  helpers do
   def authorize!(*args)
     # you already implement current_user helper :)
     ::Ability.new(current_user).authorize!(*args)
   end
  end
end
Run Code Online (Sandbox Code Playgroud)

或使用模块助手:( helpers CanCan::ControllerAdditions顺便说一下,我认为不是一个好主意)