【问题标题】:Rails 5 API override devise SessionsController sign out errorRails 5 API覆盖设计SessionsController注销错误
【发布时间】:2016-05-18 07:43:16
【问题描述】:

我创建了一个 rails 5 api 项目 并使用

Devise gem 4.1.0
Ruby 2.3.0
Rails 5.0.0.rc1

我运行命令覆盖 SessionsController

rails generate devise:controllers users

我的自定义 SessionsController 是

class Users::SessionsController < Devise::SessionsController
# before_action :configure_sign_in_params, only: [:create]

  # GET /resource/sign_in
  # def new
  #   super
  # end

  # POST /resource/sign_in
  def create
    super
  end

  # DELETE /resource/sign_out
  def destroy
    super
  end

  # protected

  # If you have extra params to permit, append them to the sanitizer.
  # def configure_sign_in_params
  #   devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute])
  # end
end

调用sign_out的路径时出错

127.0.0.1:3000/users/sign_out

错误是

"status": 500,
  "error": "Internal Server Error",
  "exception": "#<NameError: undefined local variable or method `flash' for #<Users::SessionsController:0x00000003d2e8f0>>",
  "traces": {
    "Application Trace": [],
    "Framework Trace": [
      {
        "id": 0,
        "trace": "devise (4.1.1) app/controllers/devise_controller.rb:157:in `set_flash_message'"
      },
      {
        "id": 1,
        "trace": "devise (4.1.1) app/controllers/devise_controller.rb:164:in `set_flash_message!'"
      },
      {
        "id": 2,
        "trace": "devise (4.1.1) app/controller

s/devise/sessions_controller.rb:61:in `verify_signed_out_user'" },

我在 routes.rb 中的当前路线

devise_for :users,
             controllers: {
                sessions: 'users/sessions',
                registrations: 'users/registrations'
             }

我调试了,但路径没有路由到 app/controller/users/SessionsController 我该如何路由该路径

【问题讨论】:

标签: devise rails-routing rails-api


【解决方案1】:

需要更改销毁以在获取请求上执行

继续 config/enitializers/devise.rb 并在第 239 行更改

config.sign_out_via = :delete

config.sign_out_via = :get

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多