Rails Routes中new、collection、member的区别浅析
2015-01-04 10:22
1061 查看
RESTful风格的路由动词默认有7个(分别为:index, show, create, new, edit, update, destroy)。有时我们需要自定义路由,这时就要用到:on参数。:on参数有三种取值,分别为collection,member,new。
如果想添加一个member方式的路由,可以这样:
复制代码 代码如下:resources :photos do
member do
get 'preview'
end
end
将会添加一个路由:GET请求/photos/1/preview路由到PhotosController的preview action,同时也会新建preview_photo_url 和 preview_photo_path这两个helpers。
上面的member block中可以添加很多条记录。如果只有一条,一般会这样写:
resources :photos do
get 'preview',n => :member
end
下面总结一下member,new,collection的区别:
:member 是对单个实体进行操作,创建路由格式是: /:controller/:id/:your_method
:collection 是对实体集合进行操作,创建路由格式是: /:controller/:your_method
:new 是新建一个实体,创建路由格式是: /:controller/:your_method/new
举例如下:
复制代码 代码如下:map.resources :users, :collection => { :rss => :get }
map.resources :users, :member => { :profile => :get }
map.resources :users, :new => { :draft => :get }
第一行创建的路由是:/users/rss
第二行创建的路由是:/users/1/profile
“1”就是user_id,我们需要知道用户ID才能得到用户的profile.
第三行创建的路由是:/users/new/draft
相关文章推荐
- ruby -- 进阶学习(十)自定义路由中:new, :collection和:member的区别
- 浅析C#中new、override、virtual关键字的区别
- 浅析C# new 和Override的区别
- 浅析C#中new、override、virtual关键字的区别
- 浅析C#中new、override、virtual关键字的区别
- 浅析C#中new、override、virtual关键字的区别
- 浅析C#中new、override、virtual关键字的区别
- Rails路由解析,on 参数的三种取值:collection,member,new
- 浅析C# new和override的区别
- 浅析C# new和override的区别
- new与malloc的区别,以及内存分配浅析
- Collection<String>n=new ArrayList<String>()与List<String>n=new ArrayList()的区别
- 浅析C#中new、override、virtual关键字的区别
- 浅析C#中new、override、virtual关键字的区别
- new与malloc的区别以及内存分配浅析
- C#学习笔记系列之一:new和override的区别
- Collection List Set Map 区别记忆
- 浅析class与struct区别
- CreateSpecificCulture('zh-cn')和new CultureInfo('zh-cn')的区别
- c#中new和override的区别