2012-04-08 15 views
15

Ho appena aggiornato a 1.0.3 e il file routes.rb nella mia cartella config/routes sembra ignorare tutti i miei percorsi personalizzati.Aggiunta di route a E-Commerce Spree di Rails

MY 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 

Se corro bundle exec rake routes, restituisce tutti i percorsi approriate. Ma quando cerco di raggiungere quella pagina specifica, ottengo:

undefined local variable or method `about_us_path' 

O lo stesso errore per ogni link che è dentro i miei percorsi personalizzati. In qualche modo i miei percorsi vengono ignorati. Qualcuno conosce un modo per aggirare questo problema?

risposta

37

Ho riscontrato lo stesso errore e ho trovato this solution, che lo ha risolto con il prefisso main_app, prima di ogni my_paths/_urls. Nel mio caso, questi erano collegamenti utilizzati in uno dei file /override.rb.

Quindi, prova: main_app.about_us_path.

19

È possibile aggiungere nuovi itinerari nella Sprea con blocco successivo nel file di routes.rb

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

ho scoperto che l'uso di 'main_app.my_route_path' ha rotto tutte le rotte baldoria a meno che non sono stati preceduti da' spree.'. Questa soluzione impedisce la necessità di farlo. – Zubin

+0

@Zubin Sì, main_app.my_route_path funziona per accedere ai principali percorsi dell'applicazione dai controller/viste di Spree. Per aggiungere un percorso a baldoria, è possibile utilizzare la soluzione fornita da me. –

+3

Sembra che il metodo antefatto non funzioni più. Dai un'occhiata alla risposta @ Ajay –

8

Per me anteporre non ha funzionato. per disegnare me ha fatto il lavoro:

Spree::Core::Engine.routes.draw do 
    resources :orders, except: [:new, :create, :destroy] do 
     post :my_order, on: :collection 
    end 
end