रूबी 2.0.2, रेल 4.0.3, जादुई 0.8.5क्या रेलवे में यह जांचना संभव है कि रीडायरेक्ट या रेंडर जारी किया गया हो या नहीं?
मैंने अपने कोड में एक रीडायरेक्ट जारी करने का प्रयास किया, केवल एक त्रुटि संदेश प्राप्त करने के लिए जो एक रीडायरेक्ट या रेंडर जारी किया गया था। अगर ऐसा है, तो मुझे वापस लौटने में खुशी होगी। हालांकि, अगर किसी अन्य कारण से विधि को बुलाया जाता है, तो मैं यह देखने के लिए जांचना चाहता हूं कि रीडायरेक्ट या रेंडर जारी किया गया था और यदि नहीं, तो इसे जारी करें। कोड जादूगर पर आधारित प्रमाणीकरण है।
आवेदन नियंत्रक में, मेरे पास है:
def not_authenticated
redirect_to login_url # , :alert => "First log in to view this page."
end
यह current_user के लिए जाँच समाप्त होता है, इस प्रकार है:
def current_user
@current_user ||= @view.current_user unless @view.blank?
begin
@current_user ||= Associate.find(session[:user_id]) unless session[:user_id].blank?
rescue ActiveRecord::RecordNotFound => e
return
end
current_user = @current_user
end
बचाव में, मैं या नहीं, एक निर्धारित करने के लिए करना चाहते हैं रीडायरेक्ट या रेंडर पहले ही हुआ था, ताकि अगर मैं नहीं कर सकता तो login_url को रीडायरेक्ट कर सकता हूं। इसका मतलब यह होगा कि, यह एक अलग विधि से कहा जाता है, जो यह है। धन्यवाद।
क्या आपका लॉगिन पेज 'current_user' को कॉल कर रहा है? यदि हां, तो क्यों? – Substantial
@ सबस्टेंटियल नंबर, यह नहीं है। ट्रेस ने जो कुछ भी शामिल है उसके अलावा मेरे किसी भी कोड को नहीं दिखाया। जादूगर current_user की जांच कर रहा था। यह एक क्षणिक स्थिति है और मैंने ट्रेस को नहीं बचाया है, इसलिए मेरे पास इससे अधिक नहीं है। –