Rails 用户配置文件页面只能由正确的用户访问 [英] Rails user profile page only accessible to correct user

查看:21
本文介绍了Rails 用户配置文件页面只能由正确的用户访问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 devise 进行身份验证.现在,我正在设置用户配置文件.我已经设置好了一切,除了每个人都可以访问每个页面(因此您无需登录即可查看个人资料).我如何做到只有正确的用户才能看到他们自己的个人资料页面?

users_controller.rb

class UsersController <应用控制器高清秀@user = User.find(params[:id])结尾结尾

routes.rb

devise_for :users资源:用户,仅:[:show]获取用户/节目"

显示视图...

<%=@user.id %><h1>用户#show</h1><p>在 app/views/users/show.html.erb</p> 中找到我

解决方案

这个应该有助于检测 current_user 是否正确.

class UsersController <应用控制器before_action :check_user私人的def check_user如果 current_user != @userredirect_to root_url,警告:抱歉,此个人资料属于其他人!"结尾结尾结尾

I am using devise for the authentication. Right now, I'm setting up user profiles. I have everything set up, except each page is accessible for everyone (so you can see profiles without being logged in). How do I make it so that only the correct user can see their own profile page?

users_controller.rb

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
  end
end

routes.rb

devise_for :users

  resources :users, only: [:show]

  get 'users/show'

show view...

<div class="home-page-content">
  <%= @user.id %>
<h1>Users#show</h1>

<p>Find me in app/views/users/show.html.erb</p>
</div>

解决方案

This one should help to detect current_user is correct.

class UsersController < ApplicationController

    before_action :check_user

    private

    def check_user
      if current_user != @user
        redirect_to root_url, alert: "Sorry, This Profile belongs to someone else !"
      end
    end
end

这篇关于Rails 用户配置文件页面只能由正确的用户访问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆