权威宝石赋予'undefined method'



当将rails-api与权威gem一起使用时,我在控制器中得到了undefined method 'authorize_actions_for'。我需要包括什么的任何想法?这是我的代码:

宝石文件:

...
gem 'authority', '~> 2.9.0'
gem 'rails-api', '~> 0.1.0'
...

app/authorizers/session_authorizer.rb:

class SessionAuthorizer < ApplicationAuthorizer
  def deletable_by?(user)
    user.sessions.include?(resource)
  end
end

app/controllers/v1/sessions_controller.rb:

class V1::SessionsController < ApplicationController
  authorize_actions_for Session
  ...
end

包含Authority::Controller

正如我们在 Github 上讨论的那样,authorize_actions_for是在 Authority::Controller 中定义的。

在普通的 Rails 应用程序中,该模块被 Authority 的 railtie.rb 包含在ActionController::Base中。显然,在使用 rails-api 时不需要 railtie(也许没有定义Rails常量?

不过,您可以自己包含相应的模块:

class ApplicationController < ActionController::Base
  include Authority::Controller
end

相关内容

最新更新