Javascript index.js.erb未加载到rails中
我在使用index.js.erb时遇到问题,我已经创建了一个index.js.erb,但没有执行它。我的控制器中有以下各项:Javascript index.js.erb未加载到rails中,javascript,jquery,ruby-on-rails,coffeescript,erb,Javascript,Jquery,Ruby On Rails,Coffeescript,Erb,我在使用index.js.erb时遇到问题,我已经创建了一个index.js.erb,但没有执行它。我的控制器中有以下各项: def index @images = Image.order('id desc') respond_to do |format| format.js format.html end end 以及my index.js.erb中的以下内容: alert("it works") 如果这也有帮助的话,我在这个项目的咖啡脚本
def index
@images = Image.order('id desc')
respond_to do |format|
format.js
format.html
end
end
以及my index.js.erb中的以下内容:
alert("it works")
如果这也有帮助的话,我在这个项目的咖啡脚本文件中有以下内容:
ImagePoller =
poll: ->
setTimeout @request, 5000
request: ->
$.get($('#images').data('url'))
jQuery ->
if $('#images').length > 0
ImagePoller.poll()
我可以说js.erb文件没有加载,因为我没有看到警报?有什么想法吗?要发出ajax请求,您需要从“#images”元素检索url。所有你需要确保你的URL包含正确的格式 您只需在代码中添加带有URL的
.js
:
request: ->
$.get($('#images').data('url')) + '.js'
然而,更好的方法是使用rails助手方法。例如:
哈姆勒:
#images{:'data-url' => url_for(:action => 'index', :format => 'js')}
<div id="images" data-url="<%=url_for(:action => 'index', :format => 'js')%>"></div>
雇员再培训局:
#images{:'data-url' => url_for(:action => 'index', :format => 'js')}
<div id="images" data-url="<%=url_for(:action => 'index', :format => 'js')%>"></div>
后一种情况将在URL中包含“.js”。因此,您不需要在我在开头所示的末尾追加“.js” 您是否在请求末尾使用了适当的格式,如
/images.js
?如果你想让Rails呈现你的'index.js.erb',你的url必须使用.js
格式进行请求。还要检查你的服务器日志,确保轮询没有发出HTML请求而不是js请求。@hungrycode如何确保我的url生成.js请求表单?@varatis感谢回复,我在哪里可以找到服务器日志?您的控制台上没有运行rails服务器吗?它是不断在你的控制台上打印出来的东西