问题与需要使用模块乘客

问题描述:

我已经包含下面,我已经用“要求‘model_helper’在我的environment.rb文件的底部包括参考轨模块。问题与需要使用模块乘客

一切工作的发展很好,但是当我部署到我的nginx /乘客生产环境我得到一个错误,我的model_helper中定义的方法acts_as_notifiable未找到。由于某些原因,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 

据我所知,lib目录中的文件不会自动加载a LLY。 RAILS包括类路径中的lib目录。如果需要,您必须显式加载文件。你可以这样做:

添加requireenvironment.rb结束,即

require `model_helper.rb` 

OR

通过在config/initializers目录增加一个初始化文件,即

config/initializers/load_model_helper.rb

require `model_helper.rb` 
+0

谢谢,第一个在我的特定配置中不能正常工作,但第二个没有。 感谢节省了一天。我之前没有使用初始化器文件夹。 – 2010-03-07 03:05:05