为了包含我在某些页面上只需要的一段javascript,我把
= javascript_tag do
= render "inserts_js_enhanced_element.js.erb"
在我的haml
文件中。
现在我在测试中收到警告:
DEPRECATION WARNING: Passing a template handler in the template name is
deprecated. You can simply remove the handler name or pass render
:handlers => [:erb] instead.`
但是,当我将行更改为
时 = render "inserts_js_enhanced_element.js", :handlers => [:erb]
无论如何我得到了一个新警告,说
DEPRECATION WARNING: Passing the format in the template name is
deprecated. Please pass render with :formats => [:js] instead.
如果我将此更改为
= render "inserts_js_enhanced_element", :handlers => [:erb], :formats => [:js]
它给了我错误
ActionView::Template::Error:
Missing partial application/inserts_js_enhanced_element with {:handlers=>[:haml, :builder, :erb, :coffee], :locale=>[:de], :formats=>[:html]}.
现在格式似乎没有更改为:js
,并且处理程序不仅仅是:erb
。
我该如何正确输入JS-ERB?
更新:
js.erb文件的格式为
<% session_val = determine_session_val_from_config %>
jQuery(document).ready(function() {
//JS Code
}
答案 0 :(得分:10)
很好:) 我想我通过this SO文章
找到了答案= render(:partial => 'inserts_js_enhanced_element', :handlers => [:erb], :formats => [:js])
工作,并没有向我提供弃用警告
答案 1 :(得分:3)
你试过这个吗?
= render "inserts_js_enhanced_element"