在哪里放辅助班

时间:2014-08-09 14:32:31

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

在我的应用程序中,我想添加一个名为Prototyp的辅助类:

class Prototyp
    def initialize
        ......
        @fields = JSON.parse('{' + arr.join(',') + '}')
    end

    def correct(word)
        @fields.each do |key, array|
            word.gsub! "\\" + key , [array.hex].pack("U")
        end
        return word
    end
end

我首先将其添加到liblib\Prototyp.rb

的文件夹中

然后我试图在模型类中调用它:

class Person < ActiveRecord::Base
    def self.create(file)
        pro = Prototyp.new
        ...

但不知怎的,我得到了这个错误:

NameError: uninitialized constant Person::Prototyp
C:/Sites/blazing/app/models/person.rb:3:in `create'

我错了什么?我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:2)

您的类名为Prototype(尾随e),但调用和文件名为&#34; Prototyp&#34;。

还要检查application.rb中的配置,它应该包含如下行:

config.autoload_paths += Dir["#{config.root}/lib/**/"]

这告诉Rails加载lib文件夹下的文件。