[RUBY] Vous empêcher d'accéder aux écrans de modification des publications des autres utilisateurs

environnement

・ Rails 5 ・ La fonction de connexion a été implémentée à l'aide de l'appareil

Empêcher les utilisateurs qui ne sont pas connectés d'accéder à l'écran de modification de publication

Changez l'écran d'affichage selon que vous êtes connecté ou non

view.rb


<% if user_signed_in? %>

Si vous n'êtes pas connecté, passez à l'écran de connexion

controller.rb


before_action :authenticate_user!

Vous empêcher d'accéder aux écrans de modification des publications des autres utilisateurs

Si vous l'écrivez uniquement du côté de la vue, vous pouvez le modifier en tapant directement l'url, donc écrivez-le également du côté du contrôleur.

controller.rb


@book = Book.find(params[:id])
  if @book.user == current_user
    render "edit"
  else
    redirect_to books_path
  end

view.rb


<% if @book.user == current_user %>
  〜〜〜〜〜
<% end %>

Autrement

controller.rb


  before_action :ensure_correct_user, only: [:edit, :update]

  def ensure_correct_user
    unless @user == current_user
      redirect_to user_path(current_user)
    end
  end

if instruction → Si l'évaluation est vraie(true)Si oui, faites ○○ sauf déclaration → Si l'évaluation est fausse(false)Si oui, faites ○○

finalement

Puisque l'auteur est un débutant, je pense qu'il y a des erreurs et un manque d'explication. Je vous serais reconnaissant si vous pouviez le signaler dans ce cas.

Références

https://qiita.com/tobita0000/items/866de191635e6d74e392

Recommended Posts

Vous empêcher d'accéder aux écrans de modification des publications des autres utilisateurs
Comment empêcher les utilisateurs qui ne sont pas connectés de passer à la nouvelle page ou à la page de modification
De l'introduction de la conception à la création de la table des utilisateurs
[Rails] Comment empêcher la transition d'écran
Introduction à Ruby (à partir d'autres langues)
La route de JavaScript à Java
Utilisez la méthode de permutation pour que tous les utilisateurs par défaut se suivent
Empêcher les utilisateurs connectés d'accéder à une page spécifique en saisissant une URL
Examinez le remplacement de Docker vers Podman.
[Ruby] Des bases à la méthode inject
Comment passer la valeur à un autre écran
Correction de l'écran de visualisation de la page de publication