在旧版本的Rails中,您可以使用一个包含句点的参数(通常用于将其与格式分开的内容),如下所示:
map.connect 'c/:domain.:format', :controller=>'home', :action=>'click_credit', :requirements => { :domain => %r([^/;,?]+) }
(很好的教程here)
然而,在更现代版本的Rails(2.3.x)中,我看到这个失败了::域名正在捕捉所有内容,并且:当请求进入/c/amazon.com.html时,格式为空白
有关如何修改它的任何想法?
谢谢, 汤姆
答案 0 :(得分:3)
升级到rails 3可以解决您的问题。我在rails 3中尝试了你的路由,它工作正常(只需稍加改动即可使用新的路由语法):
match 'c/:domain.:format',
:controller=>'home',
:action=>'click_credit',
:domain => %r([^/;,?]+)
# 'c/amazon.com.html' => domain: amazon.com , format: html
如果无法升级到rails 3,那么这可能有所帮助。根据{{3}},我认为:requirements
哈希可能是罪魁祸首。试试这条路线,看看它是否有效:
map.connect 'c/:domain.:format',
:controller=>'home',
:action=>'click_credit',
:domain => %r([^/;,?]+)
答案 1 :(得分:-1)