正确加载Rails中的ruby模块

时间:2010-08-23 08:15:33

标签: ruby-on-rails

我不确定我在这里做错了什么,我在lib/acts_as_votable.rb中有一个文件,它只是该应用程序的可选系统。

module ActsAsVotable

end

module ActiveRecord
  class Base
    class << self
      cattr_accessor :votable

      def acts_as_votable
        has_many :votes, :as => :voteable
      end

      def votable?
        method_defined? :votes
      end
    end

    def votable?
      self.class.send(:method_defined?, :votes)
    end
  end
end

但似乎模块永远不会加载:

undefined local variable or method `acts_as_votable' for #<Class:0x00000101796d80>

加载模块的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以将扩展名放在config/initializers目录中,以便Rails自动预加载它们。

答案 1 :(得分:0)

不确定OP所需的功能是否与配置有关。要在/ lib中加载文件,可以将以下内容添加到/config/application.rb:

config.autoload_paths += %W(#{config.root}/lib/)