2012-02-18 7 views
11

पर उपयोगकर्ता में लॉग इन नहीं किया गया है मैं रेल में उपयोगकर्ताओं के लिए अलग-अलग रूट पेज दिखाना चाहता हूं।उपयोगकर्ता में लॉग इन के लिए अलग-अलग पृष्ठ और रूट

root :to => 'welcome#index' 

और स्वागत नियंत्रण:

class WelcomeController < ApplicationController 
    before_filter :authenticate_user! 

    def index 
    end 

end 

वर्तमान में यह ठीक है के लिए उपयोगकर्ताओं में लॉग इन किया है, लेकिन/to/उपयोगकर्ताओं पुनः निर्देशित उपयोगकर्ताओं में लॉग इन

sign_in नहीं

मैं जड़ परिभाषित

मैं स्थिर रूट पेज दिखाना चाहता हूं और रीडायरेक्ट नहीं करना चाहता हूं।

+1

अपने before_filter निकालें और सूचकांक विधि में अपने तर्क को जोड़ने है कि क्या वे में लॉग इन किया के आधार पर प्रदर्शन करने के लिए क्या यह निर्धारित करने के आप वसीयत का उपयोग कर रहे ? –

+0

@MarcTalbot हाँ, क्या यह मार्ग.आरबी में लागू हो सकता है? –

+1

इस सटीक प्रश्न का उत्तर यहां दिया गया है http://stackoverflow.com/questions/8888289/rails-3-w-devise-how-to-set-two-separate-homepages-based-on-whether-the-user- मैं/8888513 # 8888513 –

उत्तर

2

यह उत्तर काम करना चाहिए। यह पेज ब्रैडली लिंक पर पोस्ट किया गया था।

इसे अपने स्वागत नियंत्रक में रखें।

def index 
    if authenticate_user? 
    redirect_to :controller=>'dashboard', :action => 'index' 
    else 
    redirect_to '/public/example_html_file.html' 
    end 
end 
2

अपने routes.rb में:

authenticated do 
    root :to => 'welcome#index' 
end 

root :to => 'home#static_page' 

यह सुनिश्चित होगा कि सभी प्रमाणीकृत उपयोगकर्ताओं के लिए root_urlwelcome#index

आपके संदर्भ के लिए है: https://github.com/plataformatec/devise/pull/1147

+0

यह अब और रेल 4 में काम नहीं करता, कोशिश: प्रमाणीकृत: उपयोगकर्ता को जड़ कार्य करें: 'डैशबोर्ड # सूचकांक', के रूप में: 'LANDING_PAGE # सूचकांक', के रूप में:: public_root – ardochhigh

23

जवाब पुनीत गोयल ने सुझाव दिया जाएगा रेल में काम नहीं करें 4. this देखें। समाधान इस तरह दो मार्गों में से एक के लिए एक अन्य नाम का उपयोग करने के लिए है:।

authenticated do 
    root :to => 'welcome#index', as: :authenticated 
end 

root :to => 'home#static_page' 
+1

जोस Valim authenticated_root अंत करने के लिए जड़ एक समाधान मुद्दे [यहां] में इस समाधान पर चर्चा करता है (https://github.com/plataformatec/devise/issues/2393#issuecomment-17298414) –

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