2013-02-12 44 views
6

मेरे पास दो मॉडल उपयोगकर्ता और ActiveAdmin हैं जिन पर मैं अपना devise एकीकरण लागू करना चाहता हूं।दो अलग-अलग मॉडल उपयोगकर्ता और सक्रिय व्यवस्थापक के मामले में तैयार करने के लिए कस्टम विफलता को परिभाषित करने के लिए कैसे?

मैं अपने custom_failure.rb रूप

class CustomFailure < Devise::FailureApp 

    def redirect_url 
    login_path 
    end 

    # def redirect_url 
    # root_path 
    # end 

    def respond 
    if http_auth? 
     http_auth 
    else 
     redirect 
    end 
    end 
end 

कौन सा महान काम कर रहा है इस प्रकार है।

इसके अलावा, में परिभाषित कर सकते हैं मेरी application controller की तरह:

def after_sign_in_path_for(resource) 
    # case resource 
    if resource.is_a?(Admin) 
     admin_dashboard_path 
    else 
     root_path 
    end 
end 

और

def after_sign_out_path_for(resource_or_scope) 
    login_path 
end 

लेकिन मुद्दा कैसे custom_failure.rb में इस resource उपयोग करने के लिए इतना है कि मैं तदनुसार अनुप्रेषित कर सकते हैं user login या के लिए के लिए लॉग इन करने के लिए है admin login के लिए ?? वर्तमान परिदृश्य के लिए यह हमेशा उपयोगकर्ता लॉगिन पेज पर रीडायरेक्ट करता है ??

उत्तर

11

0 libआपको lib फ़ोल्डर में डालने का प्रयास करें। फिर सुनिश्चित करें कि फ़ाइल लोड हो गई है। शायद आप सभी फ़ाइलों को स्वचालित रूप से lib में लोड करने का प्रयास करेंगे।

फिर Redirect to a specific page

अद्यतन:

आप इस को हल करने के गुंजाइश उपयोग करने के लिए: -

class CustomFailure < Devise::FailureApp 
    def redirect_url 
    if warden_options[:scope] == :user 
     signin_path 
    else 
     new_admin_user_session_path 
    end 
    end 
    def respond 
    if http_auth? 
     http_auth 
    else 
     redirect 
    end 
    end 
end 
+0

मैं पहले से ही है कि किया है। मेरी चिंता यह थी कि इस कस्टम विफलता को पहचानने के लिए 'उपयोगकर्ता' या 'ActiveAdmin' –

+0

@SahilGrover के लिए कृपया मेरे अपडेट की जांच करें। –