gpt4 book ai didi

javascript - Kaminari、分页、AJAX 奇怪行为

转载 作者:行者123 更新时间:2023-12-03 09:49:24 27 4
gpt4 key购买 nike

我设法让我的 AJAX 页面加载工作,但我遇到了一些我不知道如何解决的问题:我将每页的条目数设置为 4。在第一页上它可以加载 4 个项目,但在下一页上页面,它加载了超过 4 个项目。这是为什么?

实时站点:https://serene-waters-1174.herokuapp.com/

我检查了日志,发现每次 ajax 加载后 OFFSET 并没有保持一致。 ON 页面加载 OFFSET 是为了,就像我想要的那样,在后续加载中,OFFSET0

Started GET "/users/index?page=2" for ::1 at 2015-06-18 21:17:29 +0200
Processing by UsersController#index as JS
Parameters: {"page"=>"2"}
User Load (1.0ms) SELECT "users".* FROM "users" ORDER BY "users"."name" ASC LIMIT 4 OFFSET 4
Rendered users/_user.html.erb (0.3ms)
(0.2ms) SELECT COUNT(*) FROM "users"
Rendered users/index.js.erb (35.3ms)
Completed 200 OK in 45ms (Views: 42.5ms | ActiveRecord: 1.1ms)


Started GET "/users/index" for ::1 at 2015-06-18 21:17:34 +0200
Processing by UsersController#index as JS
User Load (0.8ms) SELECT "users".* FROM "users" ORDER BY "users"."name" ASC LIMIT 4 OFFSET 0
Rendered users/_user.html.erb (0.9ms)
(0.2ms) SELECT COUNT(*) FROM "users"
Rendered users/index.js.erb (48.3ms)
Completed 200 OK in 59ms (Views: 57.1ms | ActiveRecord: 1.0ms)

用户.rb

class User < ActiveRecord::Base
paginates_per 4
end

用户 Controller .rb

class UsersController < ApplicationController
def index
@users = User.order(:name).page params[:page]

respond_to do |format|
format.html
format.js {}
end
end

def show
@user = User.find(params[:id])
end
end

index.html.erb

<h1>All users in database.</h1>

<div id="paginator">
<%= paginate @users, :remote => true %>
</div><br>

<div id="list">
<%= render 'user' %>
</div>

index.js.erb

$('#list').html('<%= escape_javascript render(@users) %>');
$('#paginator').html('<%= escape_javascript(paginate(@users, :remote => true).to_s) %>');

我将非常感谢一些帮助,让我的“下一个”链接能够使用 ajax 加载页面。

编辑:我从页面源代码中意识到,并非所有页面都仅显示 4 个项目。完美的。但在 View 中,它显示 4 个项目,并重复这些相同的项目 4 次。

编辑:

这修复了部分问题。我之前在部分上使用 .each 循环。

<%= "Name: #{user.name}" %> <br>
<%= "Email: #{user.email}" %><br>
<%= "Album: #{user.album}" %>
<p>======</p>

感谢smathy !

最佳答案

OFFSETparams[:page] 控制 - 正如您在日志中看到的,:page 参数不是根据第二个请求发送。

但是,这些都不能解释为什么页面上显示的用户数超过 4 个,两个 SQL 查询都显示正确的 LIMIT 4,所以也许您的 JS 中更新 DOM 时出现另一个错误或者可能在您的用户部分中,它正在添加用户而不是替换用户。

关于javascript - Kaminari、分页、AJAX 奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922370/

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