2012-10-11 35 views
6

मैं रैक मिडलवेयर के भीतर एक सिनात्रा एप्लिकेशन तक पहुंच प्रदान करने के लिए रेल ऐप से तैयार करने का प्रयास कर रहा हूं।शून्य के लिए अपरिभाषित विधि विफलता_एप: NilClass

मेरे config/routes.rb है:

authenticate "admin" do 
    mount Admins::Dashboard, :at => "/admins"                           
end 

मेरी सिनात्रा एप्लिकेशन में, मैं का उपयोग करें:

before do 
    env["warden"].authenticate!(:scope => "admin")                         
end 

get "/dashboard" do 
    erb :dashboard 
end 

अब, मैं निम्नलिखित स्टैकट्रेस साथ कोई त्रुटि मिलती है:

Started GET "/admins/dashboard" for 127.0.0.1 at 2012-10-11 08:45:13 +0200 

NoMethodError (undefined method `failure_app' for nil:NilClass): 
    devise (2.1.2) lib/devise/delegator.rb:11:in `failure_app' 
    devise (2.1.2) lib/devise/delegator.rb:5:in `call' 
    warden (1.2.1) lib/warden/manager.rb:130:in `call_failure_app' 
    warden (1.2.1) lib/warden/manager.rb:116:in `process_unauthenticated' 
    warden (1.2.1) lib/warden/manager.rb:47:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call' 
    rack (1.4.1) lib/rack/etag.rb:23:in `call' 
    rack (1.4.1) lib/rack/conditionalget.rb:25:in `call' 

उत्तर

3

त्रुटि संदेश वादाटन को इंगित करने के लिए वार्डन विफलता ऐप को अनुकूलित करने के लिए अनुपलब्ध कॉन्फ़िगरेशन के बारे में शिकायत है।

this previous answer और the related (detailed) blogpost about setting up Sinatra+Warden & Rails+Devise देखें; उम्मीद है कि निर्देश आपको समाधान को सफलतापूर्वक कार्यान्वित करने में मदद करेंगे।