运行rake routes
会得到路由的详细。比如这条:
product_path GET /products/:id(.:format) products#show
这其中的.format
表示什么呢?
.format
表示我们可以接受和响应对应的 format 请求。比如 /products/1
响应的是 html
,而 /products/1.json
响应的是json
。
我们可以关闭这种响应,只需要resources :products, format: false
。
或者更改响应,只接受和响应json
,如:resources :products, format: 'json'
。
在实践中,这对 API 的设计非常方便,比如页面上 ajax 调用 /api/users/1/status,约束它只返回 json 格式。
可以用下面的方式来调用特定的format
link_to "json", products_url(format: "json")