ruby-on-rails Rails仅在开发环境中启用before_action

2vuwiymt  于 2022-11-19  发布在  Ruby
关注(0)|答案(2)|浏览(112)

在我的Rails 7应用程序中,我已经有了自定义的双因素身份验证,现在我只想在开发和测试环境中启用这个2fa。

class ApplicationController < ActionController::Base
  before_action :check_two_factor_authentication, except: :check_authentication

  private

  def check_two_factor_authentication
    return true unless session[:challenge_id]

    redirect_to two_factor_path
  end

我不知道什么是check_authentication,因为在整个应用程序中没有这样的方法--我猜它来自Devise gem。
如何在行动之前设置只对开发环境有效?

krugob8w

krugob8w1#

你试过吗

if %w(development test).include?(Rails.env)
  before_action :check_two_factor_authentication, except: :check_authentication 
end

3j86kqsm

3j86kqsm2#

您可以使用Rails.env.development?(或Rails.env.production?)来测试您所处的环境。

if Rails.env.development?
  before_action :check_two_factor_authentication, except: :check_authentication
end

相关问题