在Rails中编辑更新操作?

时间:2013-01-01 05:49:48

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我已经阅读过M. Hartl关于ROR教程的书,并在那里为本书的用户编辑和更新操作"@user = User.find(params[:id])"查找用户,然后出于授权目的添加"correct_user"检查@user是否为当前用户的方法。令我困惑的是,为什么我不能让用户开始在编辑和更新操作中使用"@user = current_user",这样我就不必担心用户通过其他用户ID传递URL。我想这种方法是否留下任何安全漏洞?我正在使用Devise,所以我已经有了current_user方法。

1 个答案:

答案 0 :(得分:1)

该方法的一个潜在问题是,可能是具有特殊权限的用户(管理员,审核人等)尝试编辑他们 允许更新的其他用户。最好坚持从数据库中提取。此外,如果rails已经在当前请求周期中提取了用户,则应该缓存该对象,因此它实际上不应该执行第二个数据库请求。