2016-03-31 33 views
0

我很困惑,为什么这不起作用。所以控制器内,我有一些看起来像这样Rails无法识别我的新类

#controllers/report_controller.rb 
def new 
    test = GenerateReport.generate(data) 
end 

,然后我有一个模型,看起来像这样:

#models/generate_report.rb 
class GenerateReport < ActiveRecord:Base 
    def self.generate(data) 
     # some code 
    end 
end 

当我的控制器打“新”行动,它实际上作品。但是,如果我将GenerateReport重命名为GenerateReportX并相应地更改控制器中的函数,请重新启动rails应用程序,它不会识别GenerateReportX。我不明白为什么会出现这种情况?我正在重命名整个Rails应用程序中的GenerateReport,并完全重新启动应用程序。

我的实际问题是,我创建的一个新模型几乎是一个工作正常的模型(没有我重命名它),它的类没有被识别。

我试过把这config.autoload_paths += %W(#{config.root}/lib)加到application.rb那不能解决任何问题。

有关此问题的任何建议和可能的澄清?

回答

1

如果类名为GenerateReportX它生活在models/generate_report_x.rb

+0

怎么样HMTLtoXML类?我有一个名为html_to_xml的模型文件,它不起作用。这是一个格式问题? – LewlSauce

+0

这不是命名Rails类的最佳方式。如果你不想争取“惯例重于配置”,你最好命名它为'HtmlToXml' –

+0

陷阱。非常感谢! – LewlSauce