tutorial rails not español ejemplos could ruby-on-rails ruby devise

ruby-on-rails - not - rspec rails devise



La página de perfil de usuario de Rails solo es accesible para el usuario correcto (2)

Estoy usando el dispositivo para la autenticación. En este momento, estoy configurando perfiles de usuario. Tengo todo configurado, excepto que cada página es accesible para todos (para que pueda ver los perfiles sin haber iniciado sesión). ¿Cómo lo hago para que solo el usuario correcto pueda ver su propia página de perfil?

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''

mostrar vista ...

<div class="home-page-content"> <%= @user.id %> <h1>Users#show</h1> <p>Find me in app/views/users/show.html.erb</p> </div>


Cree una relación has_one belongs_to entre usuario y perfil. En su controlador, puede incluir alguna lógica que solo muestra el perfil del usuario actual.

Pundit es una joya que ayuda con la autorización - https://github.com/elabs/pundit


Este debería ayudar a detectar current_user es correcto.

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