在routes.rb
中给出以下路线:
scope '/rest/messages(/new)', module: 'rest' do
get '/moufa(/:id)', to: 'some_controller#some_action', as: :moufa
end
在rails控制台中,我尝试app.moufa_url
,然后收到"http://www.example.com/rest/messages/moufa"
但是,当我app.moufa_url(id: 7)
时,我会收到"http://www.example.com/rest/messages/new/moufa/7"
我尝试了一些其他路由,看起来每当有人请求带参数的路由的url时,返回的url包含/new
可选部分,但是当没有提供参数时,它被省略。
我进入了ActionDispatch的代码并从那里到Journey找出为什么会发生这种情况。可悲的是,Journey的概要警告我,它变得非常复杂,我放弃了牦牛剃须。
为什么网址助手表现得像这样?是否可以强制它们省略可选段?
VERSIONS:Rails v3.2.17,Ruby v1.9.3