ActiveView::Template::Error(未初始化的常量 CustomBreadcrumbsBuilder)
ActiveView::Template::Error ( uninitialized constant CustomBreadcrumbsBuilder )
我正在使用名为 breadcrumbs_on_rails
的 gem,为了为此 gem 使用视图,我创建了一个名为 class 的视图:CustomBreadcrumbsBuilder
在我的 lib/
目录中作为研究员:
class CustomBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
def render
@context.render "/layouts/breadcrumbs", elements: @elements
end
end
我在 application.html.haml
文件中使用这个 class 以下列方式呈现布局:
%main
= render_breadcrumbs builder: ::CustomBreadcrumbsBuilder
它在开发环境中成功加载了文件,但在生产环境中,它产生了以下错误:
ActionView::Template::Error (uninitialized constant CustomBreadcrumbsBuilder):
我尝试了以下方法:
在我的 config/application.rb
中添加了以下内容:
config.autoload_paths += %W(#{config.root}/lib/)
和
config.autoload_paths << "#{Rails.root}/lib"
但是 none 的东西正在工作。同样,它在开发模式下工作,但在生产模式下失败。
我正在使用 Rails 5.0.0 和 ruby 2.2.3,在生产环境中,我正在使用 Puma 和 Nginx 来处理请求。
我仍然不知道确切的答案,但我认为 autoload_paths
是在加载视图文件后加载的,因此 Rails 无法找到 [=13] 中使用的常量=] 并在 lib/
目录中定义。所以我使用了以下内容:
config.eager_load_paths += %W(#{config.root}/lib/)
毫无疑问,它现在正在运行。
我发现的另一个解决方案是直接在视图文件中要求相应的文件,就像我在 application.html.haml
中添加了以下行:
require '/home/arslanali/personalproject/lib/custom_breadcrumbs_builder.rb'
而且它也有效。
我正在使用名为 breadcrumbs_on_rails
的 gem,为了为此 gem 使用视图,我创建了一个名为 class 的视图:CustomBreadcrumbsBuilder
在我的 lib/
目录中作为研究员:
class CustomBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
def render
@context.render "/layouts/breadcrumbs", elements: @elements
end
end
我在 application.html.haml
文件中使用这个 class 以下列方式呈现布局:
%main
= render_breadcrumbs builder: ::CustomBreadcrumbsBuilder
它在开发环境中成功加载了文件,但在生产环境中,它产生了以下错误:
ActionView::Template::Error (uninitialized constant CustomBreadcrumbsBuilder):
我尝试了以下方法:
在我的 config/application.rb
中添加了以下内容:
config.autoload_paths += %W(#{config.root}/lib/)
和
config.autoload_paths << "#{Rails.root}/lib"
但是 none 的东西正在工作。同样,它在开发模式下工作,但在生产模式下失败。
我正在使用 Rails 5.0.0 和 ruby 2.2.3,在生产环境中,我正在使用 Puma 和 Nginx 来处理请求。
我仍然不知道确切的答案,但我认为 autoload_paths
是在加载视图文件后加载的,因此 Rails 无法找到 [=13] 中使用的常量=] 并在 lib/
目录中定义。所以我使用了以下内容:
config.eager_load_paths += %W(#{config.root}/lib/)
毫无疑问,它现在正在运行。
我发现的另一个解决方案是直接在视图文件中要求相应的文件,就像我在 application.html.haml
中添加了以下行:
require '/home/arslanali/personalproject/lib/custom_breadcrumbs_builder.rb'
而且它也有效。