gpt4 book ai didi

jquery - will_paginate 的无尽页面不适用于部分

转载 作者:行者123 更新时间:2023-12-01 01:16:26 26 4
gpt4 key购买 nike

我一直在关注railscast在无尽的页面上,并且之前对 will_paginate 做了同样的事情,但是我遇到了错误,但是我尝试在我的具体情况下实现它。 will_paginate gems 工作得很好,据我通过阅读 Chrome 中的开发人员工具得知,jQuery 对 dom 的调用也是如此。问题在于返回的内容 - Rails 不喜欢它。这是一些代码:

videos.js.coffee中:

jQuery ->
if $('.pagination').length
$(window).scroll ->
url = $('.pagination .next_page').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
$('.pagination').text("Fetching more videos...")
$.getScript(url)
$(window).scroll()

在我的views/users/index.js.erb

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

在我的共享部分中,由users/index.erb.html渲染

    <div class="carousel" %>

<ul class="jcarousel-skin-recent">
<% @recently_added_video.each do |v| %>
<li><%= link_to image_tag(v.video_thumb(), width: 300), v %></li>
<% end %>
</ul>
</div>

<%= will_paginate @recently_added_video %>

这从我的开发日志中给出了以下错误:

Completed 500 Internal Server Error in 15ms

ActionView::Template::Error (Missing partial videos/video with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}.

然后我尝试使用与 users/index.js.erb 文件相同的代码创建一个 views/videos/_video.js.erb 部分,但它然后给我以下错误:

  Rendered shared/_recentlyadded.html.erb (853.8ms)
Rendered users/index.html.erb within layouts/application (1741.4ms)
Rendered layouts/_header.html.erb (2.6ms)
Rendered layouts/_footer.html.erb (0.0ms)
Completed 200 OK in 1813ms (Views: 1801.0ms | ActiveRecord: 8.5ms | Sphinx: 0.0ms)
Illegal instruction: 4

正如您所看到的,它实际上也没有渲染 _video 部分。

如果相关的话,我尝试调用的实例变量@recently_added_video是在application_controller中定义的,并且可以与partial和will_paginate一起正常工作.

谁能帮忙看看出了什么问题吗?很困惑!谢谢...

最佳答案

没关系 - 我已经弄清楚了。

问题出在这一行

$('.carousel').append( ' <%= j render(@recently_added_video) %>' );

在 users/index.js.erb 文件中。

我正在关注 Railscast,但 Ryan Bates 将他的实例变量设置为渲染部分,因此他的代码可以工作,但因为 @recently_added_video 不是部分并且不会渲染部分,所以它返回 500 错误因为没有找到部分内容。

我需要做的实际上是渲染一个像这样的部分:

 $('.jcarousel-skin-recent').append(' <%= j render ('shared/recentlyadded') %>');

希望对关注 Railscast 并遇到像我一样问题的其他人有所帮助。

关于jquery - will_paginate 的无尽页面不适用于部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com