我正在尝试以http:// servername/find/by/CRITERION/VALUE格式构建URL
CRITERION是一组有限的字符串,VALUE也是如此.麻烦的是,在某些情况下,VALUE需要是一个IP地址,这会导致我出现路由错误.
这是我的路线:
map.find 'find/by/:criterion/:query', :controller => "find", :action => "by"
Run Code Online (Sandbox Code Playgroud)
而来自Mongrel日志的错误:
Processing ApplicationController#index (for 127.0.0.1 at 2010-05-07 10:20:32) [GET]
ActionController::RoutingError (No route matches "/find/by/ip/1.2.3.4" with {:method=>:get}):
Rendering rescues/layout (not_found)
Run Code Online (Sandbox Code Playgroud)
如果我访问/ find/by/foo/bar或/ find/by/foo/1234我没有问题.我怀疑问题可能是Rails根据URL中的句点推断MIME类型,但我真的不知道如何禁用它.我已经尝试将:defaults => {:format =>:html}传递给路由,但这会导致Mongrel无法完全启动.
任何帮助赞赏!