我有一个可以在没有数据库的情况下启动的rails 2.3.8 app。所以在environment.rb文件中我排除了ActiveRecord,并且在应用程序控制器中,我在未定义ActiveRecord时呈现不同的页面。但是当我尝试将mongral升级为乘客时,乘客会抛出错误
未初始化的常量ActiveRecord
控件根本不会进入应用程序控制器。我怎样才能让乘客不提出这个例外。?
附上了栈跟踪
在abuses.rb中我有
类滥用<的ActiveRecord :: Base的
acts_as_paranoidbelongs_to:用户belongs_to :review validates_presence_of:type, :message => _('不能为空')
validates_presence_of:user,:on => :create,:if => Proc.new {| r | r.visitor_id == nil}
validates_presence_of:visitor_id,:on => :create,:if => Proc.new {| r | r.user_id == nil}
validates_length_of:comment,:maximum => 2000,:message => _('太长了2000')端
我无法删除此模型类,因为当我使用ActiveRecord启动网站时将使用它们。我想在数据库关闭的某些紧急情况下启动没有ActiveRecord的网站。并且我将显示不存在数据库的页面。
经过进一步的研究,我发现了 intializer.rb文件我有这个功能
def load_application_classes 返回$ rails_rake_task 如果是configuration.cache_classes configuration.eager_load_paths.each做 | LOAD_PATH | matcher = /\A#{Regexp.escape(load_path) }(.*).rb\Z/ Dir.glob( “#{LOAD_PATH} / * / .RB”)。sort.each do | file | require_dependency file.sub(matcher,'\ 1') 结束 结束 结束 端
注释掉require_dependency行,使rails不检查每个文件的依赖关系。有没有办法从environment.rb配置文件中禁用它? 将config.cache设置为false正在运行。但我想缓存这些类。但只是不检查依赖性。