2017-03-07 3 views
0

Ich habe eine Admin-Seite in meiner Anwendung mit einer Liste aller Benutzer E-Mails. Wenn ich auf den Link der E-Mail klicke, möchte ich das Profil dieses Nutzers sehen. Ich erhalte die richtige URL, aber meine if-Anweisung wird das Profil des Benutzers nicht rendern, da es überprüft, ob die Seite der current_user ist. Wie zeige ich das Profil des Benutzers an, das mit der E-Mail verbunden ist?Wie wird die Show-Seite eines anderen Benutzers angezeigt?

Hier ist mein Code zur Zeit:

<% if current_page?(current_user) %> 
    <% render 'users/show' %> 

ich so etwas wie dieses brauchen, aber es wird nicht funktionieren:

<% if current_page?('/users/id#') %> 
    <% render 'users'show' %> 

Antwort

0

Sie müssen die Optionen zu übergeben:

Controller, Aktion und andere params
<% if current_page?(controller: 'users', action: 'show', id: current_user.id) %> 
    <%= render 'users/show' %> 

Sie können auch die Verwendung von Routen Helfer machen

<% if current_page?(user_path(current_user)) %> 
    <%= render 'users/show' %> 
+0

Beide funktionieren für mich, wenn ich die URL des Benutzers eingeben, die ich gehen möchte:/users/1 oder users/2 ---> aber sie funktionieren nicht, wenn ich auf meine Benutzerindexseite gehe :/users/---> Ich bekomme eine URLGenerationError ID: nil – sorcalin0x11

+0

Also entfernen Sie einfach die ID und dann –

0
<% if params[:controller] == 'users' && params[:id] == curent_user.id %> 
    <%= render 'users/show' %> 
<% end %> 
0

Sie müssen die Optionen zu übergeben: Controller, Aktion und andere params

<% if current_page?(controller: 'users', action: 'show', id: current_user.id) %> 
    <%= render 'users/show' %> 
+0

Dies zeigt nur die Profilseite von current_user an, aber keinen der anderen Benutzer. Ich weiß nicht, was ich für die ID setzen soll: – sorcalin0x11

0

ich Sie, dies tun müssen denken:

<% if current_user && current_page?(user_path(current_user)) %> 
    <%= render 'users/show' %> 

Es überprüft, ob es ein verbundener Benutzer und prüfen Sie, ob dies die richtige Seite ist.

Verwandte Themen