ruby-on-rails - ActiveRecord::RecordNotFound(找不到 'id'=101 的用户)
问题描述
所以,我想在我的应用程序中添加分页。当我想向用户展示时,它第一次工作,但后来它没有工作,我想展示我的帖子。他们指出问题出在我的控制器上,但我不知道如何解决。
users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
# binding.pry
# debugger
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
# Handle a successful save.
log_in @user
flash[:success] = "Welcome to the Tute 6!"
redirect_to @user
else
render 'new'
end
end
def index
#@users = User.all
@users = User.paginate(page: params[:page])
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
end
db/seeds.rb
User.create!(name: "Example User",
email: "example@railstutorial.org",
password:
"foobar",
password_confirmation: "foobar")
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(name: name,
email: email,
password: password,
password_confirmation: password)
end
users = User.order(:created_at).take(6)
50.times do
content = Faker::Lorem.sentence(5)
users.each { |user| user.microposts.create!(content: content) }
end
如果你能帮助我,谢谢。
解决方案
我创建了 99 个用户,你不应该找到用户 101。不知道你是使用 gem 还是自己编写了分页逻辑,但我怀疑问题在于你的记录计数太多。如果您刚刚实现了分页系统,我会放弃它并非常简单地转向 pagy(gen pagy),并且比弄清楚这个额外用户数来自哪里更快地解决您的问题
祝你好运!
推荐阅读
- c - C 语法生成无效表达式
- python - Certbot 在 Linux 中返回“No module named 'six'”错误
- c# - TimerTriggered Azure Webjob 在不同的部署槽
- apache-nifi - Apache NiFi rethinkdb 连接
- spring - 将 Spring Boot 应用程序导入为 jar
- r - 单个数据框中多列之间的差异
- powershell - 如何在powershell脚本中获取对象的键和值数组?
- macos - 如果通过(硬)符号链接修改文件,如何检测(FSEvent)?
- javascript - 选择文件目录路径?html 的
- javascript - TS - 将 id 映射到对象属性