15

Вопрос по ruby-on-rails – Добавление маршрутов в электронную коммерцию 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'

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

  • Кажется, что метод prepend больше не работает. Посмотрите на ответ @ Ajay

    от
  • @Zubin Да, main_app.my_route_path работает для доступа к основным маршрутам приложений из связанных с Spree контроллеров / представлений. Для добавления маршрутов в spree, вы можете использовать решение, данное мной.

    от
  • Я обнаружил, что с помощьюmain_app.my_route_path сломал все маршруты веселья, если они не были предварительноspree., Это решение предотвращает необходимость сделать это.

    от
  • 8

    Для меня prepend не работал.

    для меня розыгрыш сделал работу:

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

  • 38

    Я столкнулся с той же ошибкой и нашел

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

    Так что постарайтесь:main_app.about_us_path.

  • 19

    Вы можете добавлять новые маршруты в Spree

    используя следующий блок в файле rout.rb

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