2013-04-06 10 views
26

मैं रेल 3.2.12 में इसे ठीक नहीं कर सकता है, हो सकता है मैं कुछ याद आ रही है।रूटिंग त्रुटि - अप्रारंभीकृत निरंतर

config/routes.rb

get "home/index" 
root :to => "home#index" 
devise_for :users, :only => :omniauth_callbacks 
match 'users/auth/:provider/callback' => 'authentications#create' 
match '/auth/:provider/signout' => 'authentications#signout' 

एप्लिकेशन/नियंत्रक/authentication_controller.rb

class AuthenticationsController < ApplicationController 
    ... 
end 

एप्लिकेशन/मॉडल/authentication.rb

class Authentication < ActiveRecord::Base 
    ... 
end 

मुझे लगता है कि मेरे वर्तमान ज्ञान के साथ काम करना चाहिए, लेकिन वहाँ कुछ है कि मैं याद आती है है।

मेरे तरह सवाल बताने के लिए, क्या गलत है कृपया होगा।

rounting त्रुटि

uninitialized constant AuthenticationsController

यह संदेश है कि कम से http://localhost:3000/auth/facebook/signout

उत्तर

43

रेल दिखाता वर्ग के नाम से मिलान करने के फ़ाइल नाम की आवश्यकता है। इसलिए आप app/controllers/authentications_controller.rb को app/controllers/authentication_controller.rb नाम बदलने चाहिए।

+2

ओह में एक प्रविष्टि जोड़ता है। धन्यवाद @alfonso। मैंने इस तरह से 'रेल जी नियंत्रक प्रमाणीकरण' में नियंत्रक बनाया है, इसलिए फ़ाइल को 'प्रमाणीकरण_controller.rb'' नाम दिया गया था, शायद मैंने कक्षा का नाम बदल दिया। ऐसे ज्ञात-से-अधिक प्रश्नों का जवाब देने के लिए बहुत बहुत धन्यवाद। – Davit

+1

@ डेविट टिप: नियंत्रकों को उत्पन्न करते समय आपको हमेशा बहुवचन का उपयोग करना चाहिए। – Bonifacio2

4

हालांकि इस सवाल का जवाब दे दिया गया है, मैं एक मामले में जहां मैं इस त्रुटि हो रही थी पाया जाता है और इसे यहाँ भावी पीढ़ी के लिए दस्तावेज़ के लिए करना चाहता था।

आप इसी नियंत्रकों के बिना दो समान अपने routes.rb फाइल में परिभाषित मार्गों है, तो आप अप्रारंभीकृत लगातार त्रुटि मिल जाएगा।

कदम पुन: पेश करने:

rails generate scaffold foobar name:string 
bundle exec rake db:migrate 

संसाधनों को जोड़ने: foobars एक नया गुंजाइश (करने के लिए routes.rb करने के लिए ध्यान दें: foobars संसाधन पहले से स्वचालित रूप से पाड़ पीढ़ी के दौरान अपने routes.rb के शीर्ष में जोड़ा गया था) इस तरह:

resources :foobars 

    ######################################## 
    # SUPER 
    ######################################## 

    constraints host: ENV['SUPER_HOST'] do 
    scope module: :super do 
     resources :foobars 
     get '/' => 'super#index' 

    end 
    end 

अब,/ऐप्स/विचारों/सुपर/foobarsको /ऐप्स/विचारों/foobars के लिए कदमऔर, ले जाने के /app/controllers/foobars_controller.rb/app/controllers/super/foobars_controller.rb करने के लिए सुनिश्चित foobars_controller.rb सुपर मॉड्यूल में है:

class Super::FoobarsController < ApplicationController 

अब के लिए जाने के अपने .dev.server/foobars/ आपको यह त्रुटि प्राप्त करना चाहिए: रूटिंग त्रुटि अप्रारंभीकृत निरंतर FoobarsController

अब, संसाधनों को दूर: routes.rb की शुरुआत से foobars यह चाहिए अब काम करो!

यह मुझे थोड़ी देर ले लिया कारण है कि मैं इस त्रुटि हो रही थी यह पता लगाने की है, और मुझे नहीं पता था कि पाड़ पैदा routes.rb

+0

https://github.com/swilson223/ParkingApp डेवलपमेंट स्रोत कोड के लिए गिट हब है यदि आप इसे पूर्ण संदर्भ में देखना चाहते हैं –

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