2013-07-03 7 views
7

प्रमाणीकरण और एक अलग नियंत्रक (उपयोगकर्ता) को दिखाने के लिए एक 'शो' कार्रवाईउपयोगकर्ता प्रोफ़ाइल पृष्ठों - रूटिंग कार्रवाई वसीयत के साथ

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 

अब तक दृश्य (उपयोगकर्ताओं/show.html.erb है कि

resources :users 

मैं इन प्रोफेसर चाहते हैं:) तभी पहुँचा प्रोफ़ाइल के उपयोगकर्ता नाम

<%= @user.username %> 

रूटिंग भी प्रदर्शित करता है आईआईएल पेजों को सार्वजनिक रूप से सुलभ किया जा सकता है अगर उन्हें इसका लिंक मिलता है/पता बताया जाता है, लेकिन वर्तमान में लॉग इन उपयोगकर्ता को अपनी प्रोफ़ाइल देखने के लिए एक लिंक भी उपलब्ध है। मेरा हेडर से मेरा स्निपेट:

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

वर्तमान में, @user रूटिंग त्रुटि को रोकने के लिए बस वहां है। मुझे पूरी तरह से यकीन नहीं है कि किस लिंक से लिंक करना है, मैंने कुछ संयोजनों की कोशिश की है, लेकिन जाहिर है कि मेरी रेल नौसिखिया दिमाग में कुछ अतिरिक्त चीज है जो मुझे करने की ज़रूरत है। किसी भी प्रकार की मदद की बेहद सराहना की जाती है!

(रेल 4, माणिक 2.0.0)

साइड नोट मैं भी करने के लिए, अंत में, आईडी + प्रारूप में उपयोगकर्ता नाम प्रदर्शित करने के लिए एक प्रोफाइल पेज के लिए लिंक की अनुमति देने के लिए चाहते हैं: # {id} - # {उपयोगकर्ता नाम} (केवल उपयोगकर्ता/1 -> उपयोगकर्ता/1-bbvoncrumb होने के बजाय)।

+0

तो आप उपयोगकर्ता पेज से लिंक करना चाहते हैं, है ना? –

उत्तर

14

आपको User उदाहरण link_to पर पैरामीटर के रूप में पास करने की आवश्यकता है यदि आप इसे दिए गए उपयोगकर्ता के show पृष्ठ से लिंक करना चाहते हैं। इसलिए यदि आप वर्तमान वसीयत में उपयोगकर्ता के प्रोफ़ाइल में लॉग इन करने के लिए लिंक करना चाहते हैं, तो आप सिर्फ जरूरत है:

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

ओह मैन। मुझे खुद को गोली मारनी चाहिए। निश्चित नहीं है कि मुझे यह क्यों याद आया और स्पष्ट उत्तर के लिए बहुत बहुत धन्यवाद। बहुत सराहना की! – bvcm

3

आप मौजूदा उपयोगकर्ताओं में लॉग इन देखने के लिए प्रोफ़ाइल सुनिश्चित करें कि आप में लॉग इन कर रहे हैं चाहते हैं

जोड़ें। उपयोगकर्ता नियंत्रक में before_filter :authenticate_user!

तो हैडर लिंक <li><%= link_to "Profile", current_user %></li>

2

में मैं इस आप मदद कर सकते हैं लगता है।

"में बाहर से मार्ग रेल" में,

उदाहरण के लिए, आप/प्रोफ़ाइल हमेशा की प्रोफ़ाइल फ़िलहाल उपयोगकर्ता के प्रवेश को दिखाने के लिए चाहते हैं। इस मामले में, आप एक्शन में मानचित्र/प्रोफाइल (बजाय/प्रोफ़ाइल/आईडी) के लिए एक सिंगुलर संसाधन का उपयोग कर सकते हैं।

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

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

निजी प्रोफाइल पेज के लिए है।

चूंकि सार्वजनिक प्रोफ़ाइल पृष्ठ निजी प्रोफ़ाइल पृष्ठ से अलग होगा, इसलिए मैं सार्वजनिक प्रोफ़ाइल दिखाने के लिए एक प्रोफाइल नियंत्रक बनाउंगा।

संबंधित मुद्दे