如何使用Rails 3.1在Javascript中渲染图像

tob*_*b88 5 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

Rails 3.1现在要求您在使用image_tag资产管道渲染图像时使用.

我已经在我的应用程序中构建了无限滚动,并将代码放入js.coffee文件中.我希望在装载更多产品的同时渲染旋转装载gif.我不能image_tag在这里使用,因为这个文件不支持rails代码,但我已经在这里写了它,所以你明白我想要做什么.

jQuery ->
  if $('.pagination').length
    $(window).scroll ->
      url = $('.pagination .next_page').attr('href')
      if url && $(window).scrollTop() > $(document).height() - $(window).height() - 1200
        $('.pagination').html("<%= image_tag("loading.gif") %> Loading more...")
        $.getScript(url)
    $(window).scroll()
Run Code Online (Sandbox Code Playgroud)

以前,我会用纯HTML编写它,<img src=...但是这将不再适用于资产管道.我怎样才能做到这一点?

Zaj*_*ajn 5

使用纯HTML应该可以正常工作.

尝试使用:<img src="/assets/loading.gif" />如果你loading.gif在里面assets/images.

更新时间21/06/2012

根据Ruby on Rails指南的2.2.3节,将.js文件的文件扩展名更改为filename.js.erbfilename.js.coffee.erb允许您在javascript中使用嵌入式ruby.

然后,您可以使用asset_path帮助程序访问存储资产的路径.

  • 根据文档,您应该能够从coffeescript文件访问`asset_path`帮助程序.[见2.2.3节](http://edgeguides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets). (4认同)