Hartl的Railtutorial:保护用户页面

时间:2012-03-10 23:34:31

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

按照第10章的Hartl's Railstutorial,我们保护用户编辑页面,以便用户只能编辑他们的信息。 http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec:protecting_pages

如果用户ID与正在访问的页面中的ID不匹配,或者用户未登录,是否有办法拒绝访问用户的主页(http:// localhost:3000 / users / 1) ?从本质上讲,这只允许用户在他的id与用户页面的id匹配时查看该页面。

1 个答案:

答案 0 :(得分:2)

本教程已定义correct_user before_filter,用于检查当前登录用户是否等于params[:id]中找到的用户。

您已经在使用它来确保用户只能编辑/更新他或她的信息。

before_filter :correct_user, :only => [:edit, :update]

您只需将该过滤器添加到show操作。

before_filter :correct_user, :only => [:show, :edit, :update]

编辑:我忘了添加@user = User.find(params[:id])操作中不再需要show,因为它将由之前的过滤器设置。