如何防止Rails 2.3.8在加载时检查所有依赖项

时间:2010-12-28 11:02:53

标签: ruby-on-rails passenger

我有一个可以在没有数据库的情况下启动的rails 2.3.8 app。所以在environment.rb文件中我排除了ActiveRecord,并且在应用程序控制器中,我在未定义ActiveRecord时呈现不同的页面。但是当我尝试将mongral升级为乘客时,乘客会抛出错误

  

未初始化的常量ActiveRecord

控件根本不会进入应用程序控制器。我怎样才能让乘客不提出这个例外。?

附上了栈跟踪

http://pastebin.com/1kXDwiRT

在abuses.rb中我有

  

类滥用<的ActiveRecord :: Base的
  acts_as_paranoid

     

belongs_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正在运行。但我想缓存这些类。但只是不检查依赖性。

0 个答案:

没有答案