Tin*_*n81 2 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
在我的控制器中,我使用类似的东西来验证一个project
真正属于给定的user
:
private
def authorized_user
@project = Project.find(params[:id])
redirect_to root_path unless current_user?(@project.user)
end
Run Code Online (Sandbox Code Playgroud)
这很有效,因为用户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项目,所以我甚至不知道这个错误在生产模式下会是什么样子.
有人可以帮忙吗?
谢谢...
我个人喜欢用这个:
@project = Project.where(id: params[:id]).first
Run Code Online (Sandbox Code Playgroud)
如果项目不存在,@project
将为零.
归档时间: |
|
查看次数: |
2232 次 |
最近记录: |