按照第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匹配时查看该页面。
答案 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
,因为它将由之前的过滤器设置。