Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery RubyonRails 4无休止的滚动_Jquery_Ruby On Rails_Infinite Scroll - Fatal编程技术网

Jquery RubyonRails 4无休止的滚动

Jquery RubyonRails 4无休止的滚动,jquery,ruby-on-rails,infinite-scroll,Jquery,Ruby On Rails,Infinite Scroll,我有一个RubyonRails4应用程序,需要无休止的滚动。问题是(我认为)它不会响应index.js.erb 我的索引操作如下所示: def index @rats = Rat.all.paginate(page: params[:page], per_page: 2).order("created_at DESC ") @avg_reviews = [] for singlerat in @rats @reviews = Review.where(rat_id: sing

我有一个RubyonRails4应用程序,需要无休止的滚动。问题是(我认为)它不会响应index.js.erb

我的索引操作如下所示:

def index
  @rats = Rat.all.paginate(page: params[:page], per_page: 2).order("created_at DESC ")
  @avg_reviews = []
  for singlerat in @rats
    @reviews = Review.where(rat_id: singlerat.id)
    if @reviews.blank?
      @avg_reviews << 0
    else
      @avg_reviews << @reviews.average(:rating).round(2)
    end
  end

  respond_to do |format|
    format.html
    format.js
  end
end  
我的index.html.erb如下所示:

<div id="rats">
  <%= render 'rats' %>
</div>
<div class="text-center"><%= will_paginate @rats, renderer: BootstrapPagination::Rails %></div>

<script>
    $('.star-rating').raty({
      path: '/assets/',
      readOnly: true,
      score: function() {
            return $(this).attr('data-score');
    }
  });
</script>

美元(“.星级”).raty({
路径:'/assets/',
只读:对,
分数:函数(){
返回$(this.attr('data-score');
}
});
我的老鼠看起来像:

  <div id="rat">
    <% @rats.each_with_index do |rat, i| %>
      <%= link_to (image_tag (rat.image (:thumb)), class: 'center-block img-responsive'), rat %>
      <div class="star-rating text-center" data-score=<%= @avg_reviews[i] %>> </div>
      <p class="text-center">Submitted by <%= rat.user.username %></p>
      <p><%= truncate(rat.description, length: 200) %></p>
  <% end %>
</div>

提交人

My rats.js.coffee看起来像:

 $(window).on 'scroll', ->
  if $('.pagination').length
    @url = $('.pagination .next_page').attr('href')
    if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
      $('.pagination').remove()
      $('#rats').append('<div>')
      $('#rats div').last().load @url+' #rats', ->
          if $('.next_page.disabled').length
            $('.pagination').remove()
$('#rats').append('<%= escape_javascript render 'rats' %>');
$('.pagination').replaceWith('<%= escape_javascript will_paginate @rats  %>');
$(窗口)。在“滚动”上,->
如果$('.pagination').length
@url=$('.pagination.next_page').attr('href'))
如果url&&$(窗口).scrollTop()>$(文档).height()-$(窗口).height()-50
$('.pagination').remove()
$(“#老鼠”)。附加(“”)
$('#rats div').last().load@url+'#rats',->
如果$('.next_page.disabled')。长度
$('.pagination').remove()
我的index.js.erb如下所示:

 $(window).on 'scroll', ->
  if $('.pagination').length
    @url = $('.pagination .next_page').attr('href')
    if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
      $('.pagination').remove()
      $('#rats').append('<div>')
      $('#rats div').last().load @url+' #rats', ->
          if $('.next_page.disabled').length
            $('.pagination').remove()
$('#rats').append('<%= escape_javascript render 'rats' %>');
$('.pagination').replaceWith('<%= escape_javascript will_paginate @rats  %>');
$(“#老鼠”)。附加(“”);
$('.pagination')。替换为('';

页面加载设置数量的项目,就好像我还没有尝试实现无休止的滚动一样

嘿,汤姆,请改进你的问题的格式,谢谢。如果你将respond\u to块移到为变量设置值的部分之前,那么该变量将不会被设置,因此将计算为nil,从而导致nil:NilClass的
未定义方法“each\u with\u index”出错。我看不出你为什么要这么做:这完全是在转移你的实际问题。是的,谢谢你,这就是为什么我把它移到下面。