类更改时,未在开发环境中调用初始化程序

时间:2012-11-02 18:45:28

标签: ruby-on-rails ruby-on-rails-3 development-environment

我的Rails 3.2应用程序中有一个初始化程序,它包含基于配置文件启动时的模块。它看起来像这样:

Array(Settings.site.authentications).map(&:to_sym).each do |sym|
  AuthAuth.class_eval do
    include Object.const_get(sym)
  end
end

Array(Settings.site.authorizations).map(&:to_sym).each do |sym|
  AuthAuth.class_eval do
    include Object.const_get(sym)
  end
end

# This exception is never raised when I start the server.  So the includes 
# appear to be working correctly.
raise "method not found!" unless AuthAuth.new.respond_to? :dynamically_included_method

AuthAuth用于ApplicationController中的:before_filter,以确保用户经过身份验证和授权。它工作正常,并且要求我有一个可配置的方法来为每个站点设置授权和身份验证逻辑。

但是,我注意到,当我在开发模式下运行服务器时,如果我对应用程序中的任何类进行代码更改,AuthAuth将恢复为默认行为,而不包含所包含的模块。

除初始化文件外,是否有适当的地方包含此代码?

这是一个相对较小的问题。在每次代码更改后重启开发服务器都很容易,但我很好奇。

0 个答案:

没有答案