首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >rails调用类方法

rails调用类方法
EN

Stack Overflow用户
提问于 2013-03-13 04:18:46
回答 2查看 334关注 0票数 0

我有我的rails应用。我有课

代码语言:javascript
运行
复制
 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“,它会显示

代码语言:javascript
运行
复制
NameError: uninitialized constant ParserPlugin

你能帮我个忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 04:24:34

确保文件名与类名匹配。以下文件的文件名:

代码语言:javascript
运行
复制
class ParserPlugin < ...

应为parser_plugin.rb,否则将出现错误

代码语言:javascript
运行
复制
NameError: uninitialized constant ParserPlugin

我假设该文件是/app/controllers格式的,因为它继承自ApplicationController类。

票数 0
EN

Stack Overflow用户

发布于 2013-03-13 04:24:51

Rails使用延迟加载,这意味着它会在常量出现时解析它们,并查找匹配的文件。并不是所有的类都是在启动时加载的-当您第一次尝试访问ParserPlugin时就会发生这种情况。在本例中,Rails在一个自动加载的目录(可能是controllers,根据您设置的继承)中查找一个名为parser_plugin.rb的文件。

附注:这很可能不应该继承自ApplicationController。如果它不是一个控制器,它就不应该连接到你的控制器。把它放在别的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15371298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档