Authentifizierung mit Gerät und einem separaten Controller (Benutzer), der eine einzelne "show" -Aktion darstellt
%Vor%Bisher wurde in der Ansicht (users / show.html.erb) nur der Benutzername des Profils angezeigt, auf das zugegriffen wurde
%Vor%Routing auch:
%Vor%Ich möchte, dass diese Profilseiten öffentlich zugänglich sind, wenn sie einen Link dazu erhalten / der Adresse mitgeteilt werden, aber auch einen Link für einen aktuell angemeldeten Benutzer haben möchten, um sein Profil zu besuchen. Mein Ausschnitt aus meinem Header:
%Vor%Momentan ist @user nur da, um einen Routing-Fehler zu stoppen. Ich bin mir nicht ganz sicher, wozu ich mich verbinde, habe einige Kombinationen ausprobiert, aber offensichtlich fehlt meinem neuen Geist etwas, was ich noch tun muss. Jede Hilfe wird sehr geschätzt!
(Rails 4, Ruby 2.0.0)
Randnotiz Ich würde auch gerne zulassen, dass der Link zu einer Profilseite den id + Benutzernamen im folgenden Format anzeigt: # {id} - # {username} (statt nur sei Benutzer / 1 - & gt; Benutzer / 1-bbvoncrumb).
Sie müssen User
instance nur als Parameter an link_to
übergeben, wenn Sie möchten, dass der Link auf die Seite show
des angegebenen Benutzers verweist. Wenn Sie also mit dem aktuell angemeldeten Benutzerprofil in Devise verlinken möchten, brauchen Sie nur:
Ich denke, das kann dir helfen.
In "Rails Routing von außen in",
%Vor%Sie möchten zum Beispiel / profile immer das Profil des aktuell angemeldeter Benutzer In diesem Fall können Sie eine Einzahl verwenden Ressource zu Karte / Profil (anstatt / Profil /: ID) zur Show Aktion.
Dies ist für private Profilseite.
Da sich die öffentliche Profilseite von der privaten Profilseite unterscheidet, würde ich einen Profil-Controller erstellen, um öffentliche Profile anzuzeigen.
Tags und Links ruby-on-rails devise ruby-on-rails-4