Jquery RubyonRails 4无休止的滚动
我有一个RubyonRails4应用程序,需要无休止的滚动。问题是(我认为)它不会响应index.js.erb 我的索引操作如下所示: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
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”出错。我看不出你为什么要这么做:这完全是在转移你的实际问题。是的,谢谢你,这就是为什么我把它移到下面。