.js.erb文件不会预编译

时间:2013-10-18 14:50:24

标签: javascript jquery ruby-on-rails ajax asset-pipeline

当我尝试运行rake assets precompile时,我收到此错误:Unexpected token: operator (>)。 我发现这是因为index.js.erb,因为将文件名更改为.html.erb使其编译。 这是index.js.erb的内容:

$('#haikus').append('<%= j render(@haikus) %>');
<% if @haikus.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@haikus) %>');
<% else %>
$('.pagination').remove();
<% end %>

haikus.js.coffee:

jQuery ->
if $('.pagination').length
      $(window).scroll ->
              url = $('.pagination .next_page').attr('href')
              if url &&  $(window).scrollTop() > $(document).height() - $(window).height() - 200
                      $('.pagination').html('Loading...')
                      $.getScript(url)
$(window).scroll()

index.html.erb:

<div id="haikus">
<%= render @haikus %>
</div>
<div class="row pagination">
<div class="large-12 columns">
    <%= will_paginate @haikus %>
</div>
</div>

如何修复它并使其编译?

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑这与它有很多关系:

  

将文件名更改为.html.erb使其编译

您是否尝试过删除js.erb文件中的逻辑?我真的在考虑无法从javascript文件中调用的“will_paginate”内容。也许你可以在文件中放入这一行&amp;看看是否编译?

$('#haikus').append('<%= j render(@haikus) %>');

如果这不起作用,那么我们知道这与此有关;否则它最有可能与will_paginate有关