Man*_*ava 30 ruby routes ruby-on-rails ruby-on-rails-3
rails路由之间resource
和之间有什么区别resources
resource :geocoder
Run Code Online (Sandbox Code Playgroud)
和
resources :posts
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别?
sks*_*laj 37
本质上,路由资源是资源为控制器提供动作能力的时候.
http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use
如果使用复数资源作为处理任何项目的泛型请求的方式,则单个资源是处理当前项目的一种方式.
所以换句话说,如果我有苹果的集合,要检索一个特定的苹果,我必须告诉路由器"苹果"通过发送苹果的ID来检索苹果.如果我已经有一台Apple,则不需要ID.
通过查看它们具有的行为(或路线),注意两者之间的差异:
在你的例子中:
ill*_*ist 14
奇异资源:
有时,您拥有一个客户端始终查找而不引用ID的资源.例如,您希望/profile
始终显示当前登录用户的配置文件.
或者,通常您当前登录的用户属于单个组织,因此要转到他/她的组织个人资料页面,可以有两个路由
#1
/organizations/:id
#2
/organization #simply
Run Code Online (Sandbox Code Playgroud)
在这里,后面的实现更有意义; 是不是?您从关联中获取组织对象
# in organizations#show
@organization = current_user.organization
Run Code Online (Sandbox Code Playgroud)
要定义这样的奇异资源,请使用resource
方法:示例
# in routes.rb
resource :organization
Run Code Online (Sandbox Code Playgroud)
在您的应用程序中创建六个不同的路径,所有路径都映射到组织控制器:
然而,您使用resources
方法定义多个资源
resources :organizations
Run Code Online (Sandbox Code Playgroud)
Ism*_*reu 12
http://guides.rubyonrails.org/routing.html#singular-resources
有时,您拥有一个客户端始终查找而不引用ID的资源.例如,您希望/ profile始终显示当前登录用户的配置文件.在这种情况下,您可以使用单一资源将show/profile(而不是/ profile /:id)映射到show动作.
看到它的一个好方法是资源没有索引操作,因为它假设只是一个.
归档时间: |
|
查看次数: |
12191 次 |
最近记录: |