Добавление маршрутов в Rails Spree E-Commerce

Недавно я обновился до 1.0.3, и файл routes.rb в моей папке config/routes, кажется, игнорирует все мои пользовательские маршруты.

MY routes.rb

JollyStore::Application.routes.draw do
  # Mount Spree 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'

Или такая же ошибка для каждой ссылки, которая находится в моих пользовательских маршрутах. Как-то мои маршруты игнорируются. Кто-нибудь знает способ обойти эту проблему?

Ответы

Ответ 1

Я столкнулся с той же ошибкой и нашел это решение, которое разрешило его с помощью префикса main_app перед каждым из my_paths/_urls. В моем случае это были ссылки, используемые в одном из файлов /override.rb.

Итак, попробуйте: main_app.about_us_path.

Ответ 2

Вы можете добавить новые маршруты в Spree, используя следующий блок в файле routes.rb

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

Ответ 3

Для меня preend не работает. для меня сделана работа:

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