2012-04-08 7 views
15

私は最近、1.0.3にアップグレードしました。私のconfig/routesフォルダのroutes.rbファイルは、すべてのカスタムルートを無視しているようです。RailsのSpree 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 

私はbundle exec rake routesを実行した場合、それはすべてのapproriateのルートを返します。私はその特定のページに到達しようとする。しかし、私が手:

undefined local variable or method `about_us_path' 

それとも私のカスタムのルート内にあるすべてのリンクのために同じエラー。どういうわけか私のルートは無視されています。誰もこの問題を回避する方法を知っていますか?

答えて

37

同じエラーが発生しました。this solutionが見つかりました。接頭辞main_appで解決しました。それぞれmy_paths/_urlsの前です。私の場合、これらは/override.rbファイルの1つで使用されていたリンクでした。

だから、試してみてください:main_app.about_us_path。私にとって

19

あなたはroutes.rbをファイルに次のブロックを使用してシュプレー川に新しいルートを追加することができます

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

私は彼らがspree.' '前に付加された場合を除き、' main_app.my_route_path'を使用すると、すべてまくるルートを破ったことが判明:私は描画のための は仕事をしました。このソリューションは、その必要性を防止します。 – Zubin

+0

@ Zubinはい、main_app.my_route_pathは、Spree関連のコントローラ/ビューからメインのアプリケーションルートにアクセスするために機能します。 spreeにルートを追加するには、私が指定したソリューションを使用できます。 –

+3

prependメソッドがもう動作しないようです。 @Ajayの答えを見てください –

8

先頭に追加動作しませんでした。

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