【发布时间】:2021-09-19 14:36:06
【问题描述】:
我在尝试使用 Jquery 和 Kaminari 渲染更多模型时遇到问题,如下所示
- PageController 中的 Pagnigation Post 模型
def home
if "default" == @tab_id || "PostForYou" == @tab_id
@buffers = Post.all.sort_by {|post| cal_post_hot_point(post)}.reverse
@buffers = Post.where("created_at >= ?", 1.week.ago.utc)
@posts = Kaminari.paginate_array(@buffers).page(params[:page]).per(10)
end
end
-
在
_post.html.erb有一个部分渲染帖子 -
在首页渲染这个部分:
<% if @posts.present? %>
<div id="home_infinite_scroll">
<%= render @posts %>
</div>
<div class="home_pagination_button" id="home_pagination">
<%= link_to_next_page(@posts, 'Next', remote: true, :onclick => "render_partial();") %>
</div>
<script>
function render_partial(){
// Append new data
$("<%=j render @posts %>").appendTo($("#home_infinite_scroll"));
// Update pagination link
<% if @posts.last_page? %>
$('#home_pagination').html("<a>End</a>");
<% else %>
$('#home_pagination').html("<%=j link_to_next_page(@posts, 'Next', :remote => true, :onclick => "render_partial();") %>");
<% end %>
}
</script>
<% end %>
问题:当我点击“下一步”按钮时,只有 10 个第一个帖子重复。但是,如果我创建home.js.erb 并将脚本代码放入其中,它将起作用。
我不想在每次需要渲染帖子时都创建新的 js 文件。有人有解决办法吗?
【问题讨论】:
标签: jquery ruby-on-rails rendering kaminari