我在页面加载时加载/渲染js.erb文件时遇到问题。它始终显示为html。
这是我尝试添加到我希望加载js.erb的html.erb文件中的内容:
<%=render 'employees_js.js.erb'%>
<%=render(:partial => 'employees_js.js.erb', :handlers => [:erb], :formats => [:js]) %>
值得注意的是,我正在尝试将此文件加载到正在加载AJAX的模板上。
请告诉我如何将js.erb文件加载为js.erb而不是.html。
谢谢。
如果我不够清楚,请告诉我。
答案 0 :(得分:1)
您无法使用render
方法在html.erb中呈现js partial。渲染将在此上下文中查找html文件。一种解决方法是将部分名称更改为employees_js.html.erb
,然后将javascript包装在脚本标记中。
<script type="text/javascript">
// your script
</script>
然后:
<%= render 'employees_js' %>
旁注:在明确请求时,应该在rails中重新发送javascript,通常使用remote: true
链接或表单。否则,您的javascript应位于资产管道中,并通过javascript_include_tag
进行请求。