REST on Rails之自定义路由
REST on Rails之自定义路由
要扩展你的REST路由,可以通过设置map.resource的:collection,:member或者:new选项来实现:
map.resources :projects, :collection => {:rss => 'get'}
map.resources :projects, :member => {:close => 'post'}
map.resources :projects, :new => {:validate => 'post'}
:collection 扩展针对资源集合(collection)的路由,它指向一个形如 #{action} => #{method}的Hash,其中method可以是get/post/put/delete,而action就是你要扩展的方法,产生的路由为 /projects/rss(Edge Rails,Rails1.2.3为/projects;rss),因此GET /projects/rss将被影射到ProjectsController#rss,同时还有一个URL Helper:rss_projects_path。
:member同:collection类似,不过它扩展针对单个资源的路由,因此它产生的路由为/projects/1/close(Edge Rails,Rails1.2.3为/projects/1;close),它也有一个URL Helper:close_project_path。
:new也差不多,不过它针对的是那些已创建但尚未被保存的资源。
参考:
作者:
fandyst
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。