ruby-on-rails - 在 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 来自 via 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。
推荐阅读
- javascript - 当 jQuery 过滤器不返回任何内容时显示消息
- python - Keras 中的形状不兼容
- nginx - 用于 Certbot/Letsencrypt 的 NGINX 配置
- python - Python比较if语句不起作用
- javascript - 为什么我的隐藏图像功能无法正常工作?
- dart - 如何从 Dart 的 pub 包管理器中注销?
- javascript - 在 NodeJS 中根据位置发送实时通知
- scala - 如何在 Spark Scala 中的 CSV 中编写不同的布局
- php - Can I put SQLite database in a folder before root folder of server and give the folder full time read and write access permission?
- postgresql - 错误:在 Postgres 中发现多个拥有的序列