2016-03-31 5 views
0

Ich bin so verwirrt, warum das nicht funktioniert. So innerhalb eines Controllers, habe ich etwas, dasSchienen erkennt meine neue Klasse nicht

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

sieht wie folgt aus und dann habe ich ein Modell, das wie folgt aussieht:

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

Wenn mein Controller die „neue“ Aktion trifft, es tatsächlich funktioniert. Wenn ich jedoch GenerateReport in GenerateReportX umbenannte und die Funktion im Controller entsprechend änderte, starte die Rails-App neu, es erkennt GenerateReportX nicht. Ich verstehe nicht warum das der Fall ist? Ich benenne alles um, was GenerateReport in der gesamten Rails-App sagt und starte die App komplett neu.

Mein aktuelles Problem war, dass ein neues Modell, das ich erstellt habe, fast ein genaues Abbild desjenigen ist, der gut funktioniert (ohne dass ich es umbenenne), und seine Klasse wird nicht erkannt.

Ich habe versucht, diese config.autoload_paths += %W(#{config.root}/lib) zu application.rb hinzuzufügen, und das repariert nichts.

Irgendwelche Vorschläge und möglicherweise Klärung zu diesem Thema?

Antwort

1

Wenn die Klasse GenerateReportX gestattet es hat in models/generate_report_x.rb

+0

Was HMTLtoXML Klasse zu leben? Ich habe eine Modelldatei namens html_to_xml und es funktioniert nicht. Ist es ein Formatierungsproblem? – LewlSauce

+0

Dies ist nicht der beste Weg, um eine Rails-Klasse zu benennen. Wenn Sie "convention over configuration" nicht bekämpfen möchten, nennen Sie es besser "HtmlToXml" –

+0

Gotcha. Vielen Dank Alter!! – LewlSauce

Verwandte Themen