You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 6中如何正确渲染js.erb文件避免弃用警告与模板缺失错误

Rails 6 Model层渲染js.erb文件的正确方案

问题原因

  • 带全后缀js/library.js.erb的写法触发弃用警告:Rails 6开始已废弃在template参数中携带文件扩展名的写法,不允许模板名出现.字符
  • 去掉后缀后报ActionView::MissingTemplate错误:是因为handlers参数配置错误,你的模板使用ERB语法,处理器应为erb而非js,指定handlers: [:js]时Rails只会匹配后缀为.js的模板,找不到你实际存在的.js.erb文件

正确写法

ApplicationController.render(
  template: 'js/library',
  assigns: { foo: 'bar' },
  handlers: [:erb],
  formats: [:js]
)

参数说明

  • template: 'js/library':不带任何后缀的模板相对路径,对应app/views/js/library.js.erb文件
  • formats: [:js]:指定响应格式为js,匹配模板的.js格式段
  • handlers: [:erb]:指定模板处理器为ERB,匹配模板的.erb后缀段
  • assigns:透传给模板的变量,用法保持不变

内容的提问来源于stack exchange,提问作者aarkerio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:24:01