使用乘客需要模块的问题

时间:2010-03-07 02:39:09

标签: ruby-on-rails passenger

我有一个rails模块供以下参考,我已经在environment.rb文件的底部使用了“require'mode_helper'。

在开发过程中一切正常,但是当我部署到我的nginx / passenger生产环境时,我得到一个错误,即找不到我的model_helper中定义的act_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

1 个答案:

答案 0 :(得分:1)

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

require添加到environment.rb的末尾,即

require `model_helper.rb`

config/initializers目录中添加初始化文件,即

<强>配置/初始化/ load_model_helper.rb

require `model_helper.rb`