我想重写一个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
在路由表中有刚一个名为路由记录接触我们:
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
任何人能解释这种现象?
您正在预先添加或添加在您面前实际上并没有取代任何东西。为什么不编辑原始路线?我不使用狂欢,所以我不确定这是否有可能。 – engineersmnky
@engineersmnky重写并不意味着直接替换,而是改变相同控制器的路径,这将取得优先。我期待只有一条记录将新路径推到路由表的顶端。 –
所以你想要有多个路径到相同的控制器和方法? – engineersmnky