使用map.conncet来定义路由规则,在config /routes。rb文件中直接增加一个关于用户博客的路由规则
路由规则:routes。rb的代码
ActionController::Routing::Routes.draw do |map|
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
map.connect ':controller/service.wsdl', :action => 'wsdl'
# Install the default route as the lowest priority.
map.connect ':controller/:action/:id.:format'
map.connect ':controller/:action/:id'
# blog
map.connect "blog/:member", :controller => 'blog', :action =>'index'
map.connect "blog/:member/:action", :controller => 'blog'
map.connect "blog/admin/:member/:action", :controller => 'blog/admin'
end
但在测试的时候,测试路由,http://localhost:3000/blog/testuser/,总是报出错误,testuser这个action请求无效,显然是没有识别这个路由规则。
但是我的路由规则定义没有错误,想到我定义的规则是特殊定义路径,那么rails判断的顺序应该是routes文件中顺序加载这些路由定义,首先应该匹配rails的默认路由定义,把关于blog的路由定义的位置放到默认规则的上方,测试通过了。