在我的控制器中,我经常使用这样的东西来验证 a 是否project
真的属于给定的user
:
private
def authorized_user
@project = Project.find(params[:id])
redirect_to root_path unless current_user?(@project.user)
end
这很好用,因为用户 A 看不到用户 B 的项目(他被转发到根页面)。
但是,这只有project
在请求的 URL 确实存在时才有效。
例如,该 URLhttp://localhost:3000/projects/1
将显示用户的项目或转发到根 URL(如果另一个用户尝试访问该项目)。
但是当我尝试访问数据库中根本不存在的项目时,例如:
http://localhost:3000/projects/777
...我收到一个丑陋的ActiveRecord::RecordNotFound
错误:
Couldn't find Person with id=777
在这里改善用户体验的最佳方法是什么?
我还没有真正部署过 Rails 项目,所以我什至不知道这个错误在生产模式下会是什么样子。
有人可以帮忙吗?
谢谢...