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

时间:2012-06-20 17:54:29

标签: 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()

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

1 个答案:

答案 0 :(得分:5)

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

如果<img src="/assets/loading.gif" />位于loading.gif内,请尝试使用assets/images

更新日期:21/06/2012

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

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