[RUBY] Verhindern Sie, dass Sie zu den Post-Edit-Bildschirmen anderer Benutzer wechseln

Umgebung

・ Schienen 5 ・ Die Anmeldefunktion wurde mit dem Gerät implementiert

Verhindern Sie, dass Benutzer, die nicht angemeldet sind, zum Bildschirm für die Nachbearbeitung wechseln

Ändern Sie den Anzeigebildschirm abhängig davon, ob Sie angemeldet sind oder nicht

view.rb


<% if user_signed_in? %>

Wenn Sie nicht angemeldet sind, springen Sie zum Anmeldebildschirm

controller.rb


before_action :authenticate_user!

Verhindern Sie, dass Sie zu den Post-Edit-Bildschirmen anderer Benutzer wechseln

Wenn Sie es nur auf der Ansichtsseite schreiben, können Sie es ändern, indem Sie die URL direkt eingeben. Schreiben Sie es also auch auf der Controllerseite.

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

Anders

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-Anweisung → Wenn die Bewertung wahr ist(true)Wenn ja, tun Sie ○○ es sei denn, Anweisung → Wenn die Bewertung falsch ist(false)Wenn ja, tun Sie ○○

Schließlich

Da der Autor ein Anfänger ist, denke ich, dass es einige Fehler und fehlende Erklärungen gibt. Ich würde es begrüßen, wenn Sie in diesem Fall darauf hinweisen könnten.

Verweise

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

Recommended Posts

Verhindern Sie, dass Sie zu den Post-Edit-Bildschirmen anderer Benutzer wechseln
So verhindern Sie, dass Benutzer, die nicht angemeldet sind, zur neuen Seite oder zur Bearbeitungsseite wechseln
Von der Einführung des Geräts bis zur Erstellung der Benutzertabelle
[Schienen] So verhindern Sie den Bildschirmübergang
Einführung in Ruby (aus anderen Sprachen)
Der Weg von JavaScript nach Java
Verwenden Sie die Permutationsmethode, damit alle Standardbenutzer aufeinander folgen
Verhindern Sie, dass angemeldete Benutzer eine bestimmte Seite eingeben, indem Sie eine URL eingeben
Untersuchen Sie den Ersatz von Docker zu Podman.
[Ruby] Von den Grundlagen bis zur Injektionsmethode
So übergeben Sie den Wert an einen anderen Bildschirm
Korrigieren Sie den Ansichtsbildschirm der Beitragsseite