我是Rails的新手,正在研究Rails 4应用程序。在我的development.rb中,
config.cache_classes = false
config.eager_load = false
这是我的应用程序的目录结构
这是我的NHLSDecorator类的代码段
这是_results_html.erb文件中的行,该行在运行时引发错误
<% posting = Posting::Decorator.new(posting) %>
现在有了这个错误
我的自动路径中也有nhls/app/presenters
目录。我还添加了app/presenters/posting
目录。这是我的application.rb文件的快照
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
config.autoload_paths += Dir["#{config.root}/app/controllers/**/"]
config.autoload_paths += Dir["#{config.root}/app/reports/**/"]
config.autoload_paths += Dir["#{config.root}/app/searchers/**/"]
config.autoload_paths += Dir["#{config.root}/app/workers/**/"]
config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
config.autoload_paths += %W(#{config.root}/app/presenters/posting)
但是我得到了错误。如果我更改config.eager_load = true
。然后工作正常。为什么我收到此错误?可能是什么原因?
谢谢
答案 0 :(得分:0)
我解决了。基本上,我将app/presenters
目录中的文件重命名为nhls_decorator.rb
。代替NHLS_Decorator
。同样在代码中,我更改了行
class Posting::Decorator < NhlsDecorator
请注意,以前是class Posting::Decorator < NHLSDecorator
。并在文件nhls_decorator.rb
class NhlsDecorator < SimpleDelegator
请注意,以前是class NHLSDecorator < SimpleDelegator
。
因此重命名就可以了。实际上,通过调试,我发现对于NHLSDecorator文件名,rails无法找到任何路径。但是,当我将其更改为NhlsDecorator时,rails会找到app/presenters/nhls_decorator.rb"
的路径并加载文件。
谢谢