0

Devise 提供了几种辅助方法,例如current_user. 它使用 ActiveSupporton_load将这些帮助程序延迟加载到控制器中。

然而,这意味着当我第一次启动 Rails 时,我尝试为这些辅助方法设置别名将无法正常工作。例如:

# in my ApplicationController
alias_method :devise_current_user, :current_user
def current_user
  user = devise_current_user
  if !user && !devise_controller?
    foo
  end
  return user
end

这将在 Rails 首次初始化时导致“方法未找到错误”。我可以先启动 Rails,然后添加这些代码,然后它就可以工作了(正确地使用别名并覆盖该方法)。

如何正确地为这些on_load助手进行别名/覆盖?

4

0 回答 0