【发布时间】:2013-02-14 19:37:57
【问题描述】:
在我的控制器中,我经常使用类似的东西来验证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。
例如,URL http://localhost:3000/projects/1 将显示用户的项目或转发到根 URL(如果其他用户尝试访问该项目)。
但是当我尝试访问数据库中根本不存在的项目时,例如像这样:
http://localhost:3000/projects/777
...我收到一个丑陋的ActiveRecord::RecordNotFound 错误:
Couldn't find Person with id=777
在这里改善用户体验的最佳方法是什么?
我还没有真正部署 Rails 项目,所以我什至不知道这个错误在生产模式下会是什么样子。
有人可以帮忙吗?
谢谢...
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2