2013-07-03 11 views
7

Uwierzytelnianie opracować i oddzielny kontroler (użytkownicy), który jest singiel „Show” akcjastrona profilu użytkownika z wynaleźć - Routing pokazać akcję przy

class UsersController < ApplicationController 
#before_filter :authenticate_user! 

    def show 
    @user = User.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @user } 
    end 
    end 
end 

Dotychczas widok (użytkownicy/show.html.erb) wyświetla tylko nazwę użytkownika dostępnym profilu

<%= @user.username %> 

Routing także:

resources :users 

chciałbym te prof ile stron ma być publicznie dostępnych, jeśli otrzymają link do niego/powiedział adres, ale także chcą mieć link dostępny do aktualnie zalogowanego użytkownika, aby odwiedzić jego profil. Mój fragment z mojego nagłówka:

<li><%= link_to "Profile", @user %></li> 
<li><%= link_to "Settings", edit_user_registration_path %></li> 
<li><%= link_to "Logout", destroy_user_session_path, method: "delete" %></li> 

Obecnie użytkownik @user jest właśnie po to, aby zatrzymać błąd routingu. Nie jestem do końca pewien, do czego się podłączyć, próbowałem wielu kombinacji, ale oczywiście mój umysł początkujących szyn nie ma czegoś, co muszę zrobić. Każda pomoc jest doceniana!

(Szyny 4, Ruby 2.0.0)

marginesie Chciałbym również, aby w końcu pozwolić na link do strony profilu, aby wyświetlić identyfikator + nazwę użytkownika w formacie: # {id} - # {nazwa użytkownika} (zamiast być tylko użytkownikami/1 -> użytkownikami/1-bbvoncrumb).

+0

Więc chcesz link do strony użytkownika, prawda? –

Odpowiedz

14

Wystarczy podać instancję jako parametr do link_to, jeśli chcesz, aby zawierała link do strony użytkownika danego użytkownika o numerze show. Więc jeśli chcesz połączyć się aktualnie zalogowanego profilu użytkownika w wynaleźć, wystarczy:

<li><%= link_to "Profile", current_user %></li> 
+3

O człowieku. Powinienem się zastrzelić. Nie wiem, dlaczego tęskniłem za tym i dziękuję za jasną odpowiedź. Bardzo doceniane! – bvcm

3

Jeśli chcesz zobaczyć bieżący zalogowany Użytkownicy Profil upewnić jesteś zalogowany

dodać. before_filter :authenticate_user! w kontrolerze użytkowników.

Następnie w linku nagłówka <li><%= link_to "Profile", current_user %></li>

2

myślę, że to może pomóc.

W „Rails routingu od zewnątrz”,

Na przykład, chciałbyś/profile na zawsze pokazać profil aktualnie zalogowanego użytkownika. W takim przypadku można użyć pojedynczego zasobu do odwzorowania/profilu (zamiast/profilu /: id) na akcję pokazu .

match "profile" => "users#show", :as => 'profile' 

<li><%= link_to "Profile", profile_path %></li> 

To na stronie profilu prywatnego.

Ponieważ strona profilu publicznego będzie inna niż strona profilu prywatnego, utworzę kontroler profili, aby wyświetlać profile publiczne.

Powiązane problemy