Так что, похоже, я был глуп и давно не проверял работу в production-env, и теперь, когда я пытаюсь выполнить развертывание, я получаю эту досадную ошибку. Есть идеи?
Библиотека / 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
конфиг / 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!
Если я добавлю дополнительный require 'history_tools'
в начало user.rb, он исправит эту ошибку , я полагаю, но тогда он не сможет найти другие вещи в #{RAILS_ROOT}/lib
, которые требовались в environment.rb таким же образом.
The kicker: это отлично работает в режиме разработки. Это только дает эту ошибку в производстве. Большинство моих поисков в Google, кажется, указывают на то, что ошибки «не пропускают постоянные» относятся к тому, как Rails автоматически загружает файлы, которые должны исчезнуть при работе, когда ничего не выгружается. Кажется, это противоположно этому поведению?