所以我覺得我很愚蠢,並且沒有檢查在production-env中運行了很長時間,現在我正在嘗試部署,我是得到這個惱人的錯誤。有任何想法嗎?Rails,production-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
尋找其他的事情,都必須在environment.rb中以相同的方式。
踢球者:這在發展模式下完美運作。它僅在生產中出現此錯誤。我的大部分搜索似乎都暗示「不缺少常量」的錯誤與Rails自動加載文件的方式有關,當沒有任何內容被卸載時,這些文件應該在生產中消失。這似乎與此行爲相反?
如果您使用的是捆綁包...我遇到了同樣的問題,並通過在rsm-rails的Gemfile中添加「:require => false」來解決此問題。 – user694971 2011-08-31 15:32:41