0

我在创建但未执行的 index.js.erb 时遇到问题。我的控制器中有以下内容:

def index
    @images = Image.order('id desc')

    respond_to do |format|
      format.js
      format.html
    end
end

在我的 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 文件没有加载,因为我没有看到警报?有任何想法吗?

4

1 回答 1

2

为了发出 ajax 请求,您从 '#images' 元素中检索 url。您需要确保您的 URL 包含正确的格式。

您可以简单地.js在代码中附加 URL:

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>

后一种情况将已经在 URL 中包含“.js”。所以你不需要在我开始展示的末尾附加“.js”。

于 2013-03-16T03:50:28.160 回答