ruby-on-rails – Rails,production-env,“对象不会丢失常数”

所以我似乎是愚蠢的,并没有检查生产env运行很长一段时间,现在我正在尝试部署,我得到这个恼人的错误.有任何想法吗?

LIB / history_tools.rb

module HistoryTools
  def self.included(base)
    base.has_many :history,:dependent => :destroy
    History::TYPES.each do |htype|
      base.has_many "history_#{htype}",:class_name => "History::#{htype.capitalize}"
    end
  end
  # ... other minor things removed ...
end

应用程序/模型/ user.rb

class User < InheritedResources::Base
  include HistoryTools
end

到config / environment.rb

# ... the usual stuff,then,at the very bottom:
require 'history_tools'

这给出了错误

activesupport-2.3.8/lib/active_support/dependencies.rb:417:in
`load_missing_constant':ArgumentError: Object is not missing
 constant HistoryTools!

如果我在user.rb的顶部添加一个额外的require’history_tools’,它会修复该错误,我相信,但是它在找到#{RAILS_ROOT} / lib中的其他东西时失败了,这在环境中是必需的.rb in以同样的方式.

踢球者:这在开发模式下完美运行.它只会在生产中出现此错误.我的大部分谷歌搜索似乎表明“不丢失常量”错误与Rails如何自动加载文件有关,当没有任何内容卸载时,这些文件应该在生产中消失.这似乎与这种行为相反?

解决方法

当我收到此错误时,这是​​因为错误中提到的类/模块内部类/模块中存在错误.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...