首页 > 解决方案 > 在我已经扩展 Devise:registrationsController 的类中添加来自 basecontroller 的过滤器之前

问题描述

我正在覆盖 Devise:RegistrationController 并且我需要在我的应用程序的 BaseController 中添加一个过滤器之前的身份验证功能,如何在过滤器之前添加它。我在扩展 Devise:RegistrationsController 并且无法扩展基本控制器时遇到了这个问题

标签: ruby-on-railsrubydevise

解决方案


创建一个关注点,然后在两个控制器中包含该关注点:

## app/controllers/concerns/concern_with_the_method_i_want.rb

module ConcernWithTheMethodIWant
  def method
    return 'This is the method'
  end
end
class BaseController < ApplicationController
  include ConcernWIthTheMethodIWant
end
class RegistrationController < Devise::RegistrationController
  include ConcernWithTheMethodIWant
end

这将使您可以:

BaseController.new.method
=> 'This is the method'

Devise:RegistrationController.new.method
=> 'This is the method'

推荐阅读