2012-04-08 15 views
15

Niedawno zaktualizowałem do 1.0.3, a plik routes.rb w moim folderze config/routes wydaje się zignorować wszystkie moje niestandardowe trasy.Dodawanie do e-commerce Spree do railsów Sprytny e-Commerce

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 

Jeśli biegnę bundle exec rake routes, zwraca wszystkie approriate tras. Ale gdy próbuję dotrzeć do tej konkretnej strony, otrzymuję:

undefined local variable or method `about_us_path' 

lub tego samego błędu dla każdego linku, który jest w moich własnych tras. W jakiś sposób moje trasy są ignorowane. Czy ktoś zna sposób na obejście tego problemu?

Odpowiedz

37

Napotkałem ten sam błąd i odnalazłem this solution, który rozwiązałem przed dodaniem main_app, przed każdym z my_paths/_urls. W moim przypadku były to linki używane w jednym z plików /override.rb.

Spróbuj więc: main_app.about_us_path.

19

można dodawać nowe trasy w Szprewą przy użyciu następujących bloku w pliku routes.rb

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

Okazało się, że przy użyciu 'main_app.my_route_path' złamał wszystkie trasy spree chyba że zostały one poprzedzane' spree.'. To rozwiązanie zapobiega potrzebie tego. – Zubin

+0

@Zubin Tak, main_app.my_route_path działa w celu uzyskania dostępu do głównych tras aplikacji z kontrolerów/widoków związanych ze Szprewą. Aby dodać trasę do szału, możesz skorzystać z podanego przeze mnie rozwiązania. –

+3

Wygląda na to, że metoda prepend nie działa. Spójrz na odpowiedź @Ajay –

8

Dla mnie prepend nie działa. dla mnie remis zrobił pracę:

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