问题描述
我定义了以下路线:
map.resources :images, :only => [ :index, :new, :destroy ]
当我执行 rake routes
时,我得到以下信息:
when I do a rake routes
I get the following:
image DELETE /images/:id(.:format) {:action=>"destroy", :controller=>"images"}
我的问题是,我想使用文件名作为我的 :id
包括任何扩展名.目前我的 id 正在进入控制器减去扩展.有什么办法可以自定义上面的map.resources生成如下路径:
My problem is, I would like to use file names as my :id
including any extension. At the moment my ids are getting to the controller minus the extension. Is there any way I can customize the above map.resources to generate the following path:
image DELETE /images/:id {:action=>"destroy", :controller=>"images"}
即没有用作 :format
的扩展名?
i.e. not have the extension used as :format
?
推荐答案
.
字符在 ActionController::Routing::SEPARATORS
中定义,它列出了要使用的特殊字符拆分网址.
The .
character is defined in ActionController::Routing::SEPARATORS
, which lists special characters to split the URL on.
如果你想避免在 .
s 处分割 URL,你需要传递一个 :constraints =>;{ :id =>/regexp/}
map.resources
的参数.
If you want to avoid splitting the URL at .
s, you need to pass a :constraints => { :id => /regexp/ }
argument to map.resources
.
见我的相关问答了解更多信息.
这篇关于我怎样才能获得一个 rails 路线来保留扩展名作为 id 的一部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!