2010-03-07 3 views
2

У меня есть модуль рельсы для справки ниже, что я включил, используя «требуют„model_helper“в нижней части моего файла environment.rb.Проблема с требует использования модуля пассажира

Все отлично работает в разработке, но когда Я развертываю в моей рабочей среде nginx/travel. Я получаю сообщение об ошибке, что метод act_as_notifiable, определенный в моей model_helper, не найден. По какой-то причине model_helper не загружается при запуске с пассажиром. Файл называется model_helper.rb и находится в lib папка.

module ActiveRecord 
module ModelHelper # module name 
    def self.included(base) 
    base.extend(ClassMethods) 
    end 

    module ClassMethods 
    def acts_as_notifiable 
    after_create :post_create 
    has_one :notification, :as => :about, :dependent => :destroy 


    end 
    end 
    def post_create 
    Notification.create :user => user, :about => self unless user.nil? 
    end 

end 
end 

ActiveRecord::Base.send :include, ActiveRecord::ModelHelper 

ответ

1

Как известно, файлы в каталоге lib не загружаются автоматически LLY. RAILS включает каталог lib в пути класса. Вы должны явно загрузить файл, если вам это нужно. Вы можете сделать это:

Добавление require к концу environment.rb, т.е.

require `model_helper.rb` 

ИЛИ

Добавляя файл инициализации в каталоге config/initializers, т.е.

config/initializers/load_model_helper.rb

require `model_helper.rb` 
+0

Спасибо, первый не работает, кстати, в моей конкретной конфигурации, но второй сделал. Спасибо, спасли день. Я раньше не использовал папку инициализаторов. –

Смежные вопросы