ruby on rails - डिवाइसे के साथ रेल 3: कोई रूट मैच नहीं/डी/यूज़र्स/साइन-आउट




ruby-on-rails ruby-on-rails-3 (2)

जब मैं डिवइस त्रुटि से साइन आउट करने का प्रयास करता हूं, तो मुझे निम्न त्रुटि मिलती है:

कोई मार्ग मेल नहीं है [GET] "/ d / उपयोगकर्ता / साइन-आउट"

मेरा टैग सही है, यह निम्नानुसार है:

<%= link_to "Sign Out", destroy_session_path, :method=>:delete %>

योजना के लिए मेरा मार्ग है:

devise_for :users, :path_prefix=>"d", :controllers=>{:sessions=>"sessions"}

अन्य मार्ग हैं:

resources :users#For CRUD defined after devise_for like in Devise Wiki

डेवलवे विकी पृष्ठ पर एजेक्स लॉगिन के लिए कस्टम नियंत्रक सत्र के साथ:

class SessionsController < Devise::SessionsController

 def create
  respond_to do |format|
    format.html{ super }
    format.json do
     resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
     #resource = warden.authenticate!(:scope => resource_name, :recall => :failure)
     return sign_in_and_redirect(resource_name, resource)
    end
   end
  end

def sign_in_and_redirect(resource_or_scope, resource=nil)
  scope = Devise::Mapping.find_scope!(resource_or_scope)
  resource ||= resource_or_scope
  sign_in(scope, resource) unless warden.user(scope) == resource
  return render :json => {:success => true, :redirect => stored_location_for(scope) || after_sign_in_path_for(resource)}
end

def failure
  return render:json => {:success => false, :errors => ["Login failed."]}
end

end

योजनाबद्ध आरंभकर्ता में है:

config.sign_out_via = :delete

क्या समस्या पैदा कर सकता है पर कोई विचार? मैंने Google की खोज की है और अभी भी स्टम्प्ड है।

अद्यतन करें:

यहां योजना उपयोगकर्ताओं के लिए रेल मार्ग फ़ाइल का एक स्क्रीनशॉट है। क्षमा करें, यह छोटा है, लेकिन आप राइट-क्लिक कर सकते हैं और फिर इसे एक बड़ी स्क्रीन के लिए स्वयं देख सकते हैं।

# 2 अपडेट करें:

Jquery_ujs फ़ाइल शामिल है।

# 3 का अद्यतन करें:

यह कंसोल में दिखाई देता है कि वास्तव में हटाया जा रहा है, लेकिन यह sessions_controller से या तो / users / sign_out से कूद रहा है ... यह निश्चित नहीं है कि यह कैसे ठीक करें

# 4 का अद्यतन करें:

रीडायरेक्ट करते समय यह पहली बार डी / यूज़र्स / साइन-आउट के रूप में DELETE के रूप में चला जाता है, जैसा कि यह होना चाहिए यह तब root_url रीडायरेक्ट root_url जो फिर त्रुटि ERROR Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. देता है ERROR Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. यह फिर डी / यूजर्स / साइन-आउट को पुनः प्राप्त करने की कोशिश करता है जहां यह असफल हो रहा है।


ऐसा लगता है जैसे आपने //= require jquery_ujs अपने application.js फ़ाइल से //= require jquery_ujs को निकाला हो। मुझे लगता है कि एक 'हटाए जाने' का अनुरोध करने के लिए लिंक विवरण को संभालता है। किसी भी तरह से, जैसा कि अब है, आप एक 'जीईटी' बना रहे हैं, जो स्पष्ट रूप से आपके destroy_user_session विधि को नहीं destroy_user_session


यह उपकरण और रूबी 1.9.2-पी 2 9 0 के बीच एक समस्या है। रूबी 1.9.3 को अपडेट कर रहा है और bundle update को bundle update करने के लिए सुनिश्चित करें कि डेवलसे का नवीनतम संस्करण उपयोग किया गया था; काम करने के लिए प्रतीत होता है







devise