【发布时间】:2021-08-12 02:45:10
【问题描述】:
我按照以下步骤操作:
在 Gemfile 中添加:
gem 'devise-security', '~> 0.16.0'
运行这个命令:
rails generate devise_security:install
在资源模型文件中添加 paranoid_verification:
class User < ApplicationRecord
rolify
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable, :invitable, :confirmable,
:recoverable, :validatable, :saml_authenticatable, :paranoid_verification
自定义路线:
devise_for :users,
path: '',
path_names: {
sign_in: 'signin',
registration: 'signup',
confirmation: 'verification',
},
controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations',
confirmations: 'users/confirmations',
passwords: 'users/passwords',
invitations: 'users/invitations',
verification_code: 'users/paranoid_verification_code',
},
skip: [:unlocks, :omniauth_callbacks, :saml_authenticatable],
defaults: { format: :json }
在 app/controllers/users/paranoid_verification_code_controller.rb 中添加我自己的控制器:
# frozen_string_literal: true
class Users::ParanoidVerificationCodeController < Devise::ParanoidVerificationCodeController
skip_before_action :handle_paranoid_verification
prepend_before_action :authenticate_scope!, only: [:show, :update]
但 rake 路由仍显示以下内容:
user_paranoid_verification_code GET /verification_code(.:format) devise/paranoid_verification_code#show {:format=>:json}
PATCH /verification_code(.:format) devise/paranoid_verification_code#update {:format=>:json}
PUT /verification_code(.:format) devise/paranoid_verification_code#update {:format=>:json}
我做错了什么??其他控制器(可邀请、可注册等)正常工作
【问题讨论】:
标签: ruby-on-rails ruby controller devise overriding