2012-04-08 10 views
15

में रूट जोड़ना मैंने हाल ही में 1.0.3 पर अपग्रेड किया है, और मेरे कॉन्फ़िगर/रूट फ़ोल्डर में routes.rb फ़ाइल मेरे सभी कस्टम मार्गों को अनदेखा कर रही है।रेल के स्प्री ई-कॉमर्स

मेरी routes.rb

JollyStore::Application.routes.draw do 
    # Mount Spree's routes 
    mount Spree::Core::Engine, :at => '/' 

    root :to => 'pages#index' 

    namespace :admin do 
    resources :wysiwygs 
    end 

    match 'about_us/', :to => "pages#about_us" 
    match 'services/', :to => "pages#services" 
    match 'raw_resources/', :to => "pages#raw_resources" 
    match 'contact_us/', :to => "pages#contact_us" 

    match 'privacy_policy/', :to => "pages#privacy_policy" 
    match 'return_policy/', :to => "pages#return_policy" 
    match 'refund_policy/', :to => "pages#refund_policy" 
    match 'cancellation_policy/', :to => "pages#cancellation_policy" 
    match 'delivery_shipping_policy/', :to => "pages#delivery_shipping_policy" 


end 

अगर मैं bundle exec rake routes चलाने के लिए, यह सब approriate मार्गों देता है। लेकिन जब मैं उस विशिष्ट पृष्ठ तक पहुंचने का प्रयास करता हूं, तो मुझे मिलता है:

undefined local variable or method `about_us_path' 

या मेरे कस्टम मार्गों के भीतर मौजूद प्रत्येक लिंक के लिए एक ही त्रुटि। किसी भी तरह से मेरे मार्गों को अनदेखा किया जा रहा है। क्या किसी को इस मुद्दे को रोकने के लिए कोई रास्ता पता है?

उत्तर

37

मुझे एक ही त्रुटि का सामना करना पड़ा और this solution मिला, जिसने में से प्रत्येक से पहले main_app उपसर्ग करके इसे हल किया। मेरे मामले में, ये /override.rb फ़ाइलों में से एक में उपयोग किए गए लिंक थे।

तो, कोशिश करें: main_app.about_us_path

19

आप routes.rb फ़ाइल

Spree::Core::Engine.routes.prepend do 
    # Your new routes 
end 
+0

मैंने पाया कि का उपयोग करते हुए 'main_app.my_route_path' सभी होड़ मार्गों को तोड़ दिया जब तक कि वे' spree.' साथ prepended गया: मेरे लिए आकर्षित काम किया है। यह समाधान ऐसा करने की आवश्यकता को रोकता है। – Zubin

+0

@ जुबिन हां, main_app.my_route_path स्प्री संबंधित नियंत्रकों/विचारों से मुख्य अनुप्रयोग मार्गों तक पहुंचने के लिए काम करता है। स्प्री के लिए मार्ग जोड़ने के लिए, आप मेरे द्वारा दिए गए समाधान का उपयोग कर सकते हैं। –

+3

ऐसा लगता है कि प्रीपेड विधि अब और काम नहीं करती है। @Ajay उत्तर पर एक नज़र डालें –

8

में निम्नलिखित ब्लॉक का उपयोग स्प्री में नए मार्गों में जोड़ सकते हैं मेरे लिए आगे जोड़ते काम नहीं किया।

Spree::Core::Engine.routes.draw do 
    resources :orders, except: [:new, :create, :destroy] do 
     post :my_order, on: :collection 
    end 
end 
संबंधित मुद्दे