在 Rails 6 中的 ApplicationController.render 中访问帮助程序



我正在使用 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>

不过,如果它们在布局中,它们确实有效,知道我错过了什么吗?

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

相关内容

  • 没有找到相关文章

最新更新