【问题标题】:accessing helpers in ApplicationController.render in Rails 6在 Rails 6 中访问 ApplicationController.render 中的助手
【发布时间】:2020-01-09 14:22:01
【问题描述】:

我正在使用 Sprockets 预处理器为我的应用生成静态 HTML 错误页面:

ApplicationController.renderer
  .new({
    http_host: 'myhost',
    https: Rails.env != 'development'
  })
    .render({
      inline: asset[:data],
      layout: 'layouts/error_page'
    })

HTML 通过asset[:data] 进入,我使用error_page 布局渲染它。这在 Rails 5 中没有问题,但是自从升级到 6 后,如果我的自定义帮助方法位于渲染的内联部分,则它们都无法访问:

NameError: undefined local variable or method `my_custom_helper' for #<#<Class:0x00000000061b2758>:0x00007fe24c03bc28>

如果它们在布局中,它们确实可以工作,知道我缺少什么吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-6


    【解决方案1】:

    内联文件是 .html.erb,将它们重命名为 .html 足以让它与 Rails 6 一起使用。 NameError 发生在预处理器甚至被调用之前,我猜 Sprockets 试图解析它前面的 ERB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2011-06-27
      • 2010-09-30
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多