问题与需要使用模块乘客
问题描述:
我已经包含下面,我已经用“要求‘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
目录。如果需要,您必须显式加载文件。你可以这样做:
添加require
到environment.rb
结束,即
require `model_helper.rb`
OR
通过在config/initializers
目录增加一个初始化文件,即
config/initializers/load_model_helper.rb
require `model_helper.rb`
谢谢,第一个在我的特定配置中不能正常工作,但第二个没有。 感谢节省了一天。我之前没有使用初始化器文件夹。 – 2010-03-07 03:05:05