You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails开发Facebook克隆遇ActiveRecord::RecordNotFound报错求助

解决Rails好友功能开发中ActiveRecord::RecordNotFound in UsersController#show错误

错误核心

报错信息:Couldn't find User without an ID,触发位置为UsersController#show动作。

排查与修复步骤

1. 检查UsersController#show方法实现

确保控制器中获取用户的代码正确接收并使用ID参数:

# users_controller.rb 正确示例
def show
  @user = User.find(params[:id])
end

如果代码中未传递params[:id],或者使用了错误的参数键(比如不是:id),会直接触发该错误。

2. 验证routes.rb的路由配置

确认用户详情页路由包含:id参数:

  • 推荐使用RESTful路由:
# routes.rb
resources :users

该配置会自动生成GET /users/:id的路由,确保请求时能传递ID参数。

  • 若使用自定义路由,必须显式声明:id:
get 'users/profile/:id', to: 'users#show', as: :user_profile

3. 检查页面跳转链接的正确性

确保页面中指向用户详情页的链接正确传入用户对象(以生成带ID的URL):

# ERB模板示例写法
<%= link_to '查看好友资料', user_path(@friend) %>

如果链接中未传入有效的用户对象,会生成缺少ID的URL,导致请求时无ID参数传递给控制器。

4. 确认User模型无异常逻辑

检查user.rb中是否重写了find方法、添加了全局查询条件等可能干扰用户查询的代码,确保模型基础查询逻辑正常。

错误截图说明

截图显示错误栈指向UsersController#show动作,核心提示为Couldn't find User without an ID。

内容的提问来源于stack exchange,提问作者CoolGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:55:17