Ruby on rails 将路由添加到Rails';疯狂的电子商务

Ruby on rails 将路由添加到Rails';疯狂的电子商务,ruby-on-rails,spree,Ruby On Rails,Spree,我最近刚升级到1.0.3,我的config/routes文件夹中的routes.rb文件似乎忽略了我的所有自定义路由 我的路线.rb JollyStore::Application.routes.draw do # Mount Spree's routes mount Spree::Core::Engine, :at => '/' root :to => 'pages#index' namespace :admin do resources :wysiwy

我最近刚升级到
1.0.3
,我的config/routes文件夹中的routes.rb文件似乎忽略了我的所有自定义路由

我的路线.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'

或者对于自定义路由中的每个链接都会出现相同的错误。不知怎的,我的路线被忽略了。有人知道如何避免这个问题吗?

我遇到了同样的错误,并找到了解决方法,在每个
我的路径/\u URL之前加前缀
main\u app
。在我的例子中,这些链接用于一个
/override.rb
文件中


因此,请尝试:
main\u应用程序。关于路径

您可以使用routes.rb文件中的以下块在Spree中添加新路由

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

我发现使用
main\u app.my\u route\u path
会破坏所有的spree路由,除非它们前面有
spree.
。此解决方案可防止执行此操作。@Zubin是的,main_app.my_route_路径用于从与Spree相关的控制器/视图访问主应用程序路由。对于向spree添加路由,您可以使用我给出的解决方案。似乎prepend方法不再有效。看看@Ajay-answer