URI上带点的参数

在我的应用程序中,有一个来自machine:ip的资源,机器和嵌套资源。

我希望能够访问输入IP地址的IP的URI。

URI应该是这样的:

/machines/m123/ips/192.168.0.1.xml 

其中“m123”是机器的名称,“192.168.0.1”是该机器的ips之一。

这里的问题是rails错过了ip和格式的点。 当我尝试访问此页面时,我得到:

 No route matches "/machines/m123/ips/192.168.0.1.xml" 

如果我替换任何其他角色的点,它会起作用,这意味着rails不会处理URI上的点。

有没有办法在路线上输入更复杂的正则表达式,以确保铁路可以按照我想要的方式对待它?

我正在使用rails 2.3.5和ruby 1.8.7。

谢谢。

使用:requirements => { :param_name => pattern_regex }参数:

 IP_PATTERN = /\A(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)(?:\.(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)){3}\z/.freeze map.resources :ip, :requirements => { :id => IP_PATTERN }