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
相关产品推荐
相关产品推荐

