Добавление маршрутов в электронную коммерцию Rails
Я только недавно обновился до 1.0.3
и файл rout.RB в моей папке config / routs игнорирует все мои пользовательские маршруты.
Мои маршруты
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'
Или та же ошибка для каждой ссылки в моих пользовательских маршрутах. Почему-то мои маршруты игнорируются. Кто-нибудь знает способ обойти эту проблему?
3 ответа
Я столкнулся с той же ошибкой и нашел это решение, которое решило его с помощью префикса main_app
перед каждым из my_paths/_urls
, В моем случае это были ссылки, используемые в одном из /override.rb
файлы.
Так что постарайтесь: main_app.about_us_path
,
Вы можете добавить новые маршруты в Spree, используя следующий блок в файле rout.rb
Spree::Core::Engine.routes.prepend do
# Your new routes
end
Для меня prepend не работал. для меня розыгрыш сделал работу:
Spree::Core::Engine.routes.draw do
resources :orders, except: [:new, :create, :destroy] do
post :my_order, on: :collection
end
end