如何强制Rails在像google.com这样的值(例如/some_action/google.com)中考虑带有点的参数,而不是“id”=> “google”,“format”=> “COM”?
参数值应为“id”=> “google.com”
解决方法
默认情况下,动态段不接受点 – 这是因为该点用作格式化路由的分隔符.但是,您可以向路由参数添加一些正则表达式要求.在这里,你想允许参数中的点.
match 'some_action/:id' => 'controller#action',:constraints => { :id => /[0-z\.]+/ }
在铁路2.3:
map.connect 'some_action/:id',:controller => 'controller',:action => 'action',:requirements => { :id => /[0-z\.]+/ }