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
yaşamak zorundadır? Html_to_xml adlı bir model dosyam var ve çalışmıyor. Biçimlendirme sorunu mu? – LewlSauce
Bu, Rails sınıfını adlandırmanın en iyi yolu değildir. "Konfigürasyon sözleşmesi" ile savaşmak istemezseniz, 'HtmlToXml' –
Gotcha ismini vermelisiniz. Çok teşekkürler dostum! – LewlSauce