2012-04-08 47 views
15

我剛剛升級到1.0.3,我的config/routes文件夾中的routes.rb文件似乎忽略了所有我的自定義路由。將路線添加到Rails的Spree電子商務

我的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,它返回所有選擇恰當的路線。但是,當我試圖達到的特定網頁,我得到:

undefined local variable or method `about_us_path' 

或爲每一個環節就是我的自定義路線中同樣的錯誤。不知何故,我的路線被忽略。有沒有人知道一種方法來規避這個問題?

回答

37

我遇到了同樣的錯誤,發現this solution,它通過在每個my_paths/_urls之前加上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.'前綴。該解決方案可以防止需要這樣做。 – Zubin 2013-05-15 00:54:10

+0

@Zubin是的,main_app.my_route_path用於從Spree相關控制器/視圖訪問主應用程序路由。 要添加一個路線到狂歡,你可以使用我給出的解決方案。 – 2013-07-24 06:59:17

+3

似乎prepend方法不再工作。看看@Ajay的答案 – 2015-06-22 15:07:52

8

添加使用以下塊在施普雷新航線對我來說,在前面加上沒有工作。 對我提請所做的工作:

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