Во-первых, проще открыть класс Object напрямую:
class Object
def nil_or_empty?
nil? || respond_to?(:empty?) && empty?
# or even shorter: nil? || try(:empty?)
end
end
Во-вторых, указание Rails на автозагрузку / lib не означает, что файлы в / lib будут загружены при запуске вашего приложения - это означает, что когда вы используете константу, которая в данный момент не определена, Rails будет искать файл в / lib соответствует этой константе. Например, если вы ссылались на ObjectExtensions в коде приложения Rails, и он где-то еще не был определен, Rails ожидает найти его в lib / object_extensions.rb.
Поскольку вы не можете расширять базовый класс в / lib, как это, лучше поместить базовые расширения в каталог config / initializer. Rails загрузит все файлы там автоматически при загрузке вашего приложения. Поэтому попробуйте поместить указанное выше расширение Object в config / initializers / object_extension.rb или config / initializers / extensions / object.rb, или что-то подобное, и все должно работать нормально.