我有我的rails应用。我有课
class ParserPlugin < ApplicationController
def self.loadPlugins
Dir.foreach("/plugins") do |f|
if f != '.' and f != '..'
load("/plugins" + f.to_s)
end
end
end
def self.createplugin
@@plugins << self.new
end
end
我用"rails c“开始项目。如果我试着调用"ParserPlugin.loadPlugins“,它会显示
NameError: uninitialized constant ParserPlugin
你能帮我个忙吗?
发布于 2013-03-13 04:24:34
确保文件名与类名匹配。以下文件的文件名:
class ParserPlugin < ...
应为parser_plugin.rb
,否则将出现错误
NameError: uninitialized constant ParserPlugin
我假设该文件是/app/controllers
格式的,因为它继承自ApplicationController
类。
发布于 2013-03-13 04:24:51
Rails使用延迟加载,这意味着它会在常量出现时解析它们,并查找匹配的文件。并不是所有的类都是在启动时加载的-当您第一次尝试访问ParserPlugin
时就会发生这种情况。在本例中,Rails在一个自动加载的目录(可能是controllers
,根据您设置的继承)中查找一个名为parser_plugin.rb
的文件。
附注:这很可能不应该继承自ApplicationController
。如果它不是一个控制器,它就不应该连接到你的控制器。把它放在别的地方。
https://stackoverflow.com/questions/15371298
复制相似问题