2016-03-31 18 views
0

Bunun neden işe yaramadığı konusunda kafam çok karışık. Bir denetleyici iç Yani, buRaylar yeni sınıfımı tanımaz

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

gibi görünen bir şey var ve sonra ben şöyle bir model var: my kontrolör "yeni" eylemi, aslında vurur

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

Eserleri. Ancak GenerateReportX için GenerateReport adını değiştirdiyse ve buna göre denetleyicideki işlevi değiştirirseniz, raylar uygulamasını yeniden başlatın, GenerateReportX'i tanımıyor. Neden böyle olduğunu anlamıyorum? Tüm raylar uygulamasında GenerateReport yazan ve uygulamayı tamamen yeniden başlatan her şeyi yeniden adlandırıyorum.

Benim asıl problemim, yarattığım yeni bir modelin, (iyi bir şekilde yeniden adlandırmaksızın) iyi çalışan ve sınıfının tanınmamasının neredeyse tam bir mimik olmasıydı.

Bu config.autoload_paths += %W(#{config.root}/lib)'u application.rb'a eklemeyi denedim ve bu hiçbir şeyi düzeltmiyor.

Bu konuyla ilgili herhangi bir öneri ve muhtemelen açıklama? sınıf GenerateReportX adı verilirse

cevap

1

Ne HMTLtoXML sınıfı hakkında models/generate_report_x.rb

+0

yaşamak zorundadır? Html_to_xml adlı bir model dosyam var ve çalışmıyor. Biçimlendirme sorunu mu? – LewlSauce

+0

Bu, Rails sınıfını adlandırmanın en iyi yolu değildir. "Konfigürasyon sözleşmesi" ile savaşmak istemezseniz, 'HtmlToXml' –

+0

Gotcha ismini vermelisiniz. Çok teşekkürler dostum! – LewlSauce

İlgili konular