【发布时间】:2017-11-26 12:02:40
【问题描述】:
我目前使用他们的序列号生成用户的个人资料页面,如下所示:
get '/users/:id' do
@user = User.get(params[:id])
end
这很好用,直到输入了数据库中不存在的数字。
我知道如果找不到记录,我可以将 User.get 更改为 User.get! 以返回 ObjectNotFoundError 错误,但我不确定如何使用它来帮助我。
我以前在使用 RoR 时使用.exists?。
有什么建议吗?
提前致谢!
编辑:我将不回答这个问题,因为我实际上还没有找到我在标题中提出的问题的解决方案;但是,我确实通过检查输入的 :id 是否高于数据库中存在的用户数量来解决我自己的问题,如下所示:
if params[:id].to_i > User.count
"This user does not exist."
else
@users_id = User.get(params[:id])
erb(:'users/id')
end
【问题讨论】:
-
只是好奇,既然你可以抛出
ObjectNotFoundError,为什么不抓住它并重定向到404 not found页面呢? PS从未尝试过sinatra,只是rails
标签: ruby sinatra datamapper