我想覆盖 Spree/Rails 扩展的默认路径。
扩展 spree_contact_us 以这种方式在其 config/routes.rb 中定义默认路由:
Spree::Core::Engine.routes.draw do
resources :contacts,
:controller => 'contact_us/contacts',
:only => [:new, :create]
match 'contact-us' => 'contact_us/contacts#new', :as => :contact_us
end
在 routes 表中,只有一条名为contact-us的路由记录:
contact_us /contact-us(.:format) spree/contact_us/contacts#new
如果我将主应用程序的 config/routes.rb 中的以下覆盖传递给routes.prepend
方法
Spree::Core::Engine.routes.prepend do
match 'napiste-nam' => 'contact_us/contacts#new', :as => :contact_us
end
rake routes
两次显示到新命名路径的路线,当传递给routes.append
甚至三次时:
contact_us /napiste-nam(.:format) spree/contact_us/contacts#new
contact_us /napiste-nam(.:format) spree/contact_us/contacts#new
任何人都可以解释这种行为吗?