Sun~sun~Flower's

日々前向きに頑張る為のブログ

MENU

【Rails】routes.rbのresourcesとresourceの違いとは?

こんにちは。

当ページにアクセスして下さり、ありがとうございます。

 

この記事は、プログラミング言語「Ruby」のフレームワーク「Rails」についての記事になります。

 

コントローラーからビューやモデルとやりとりする前に、まず「ルーティング」を行うという事はRailを学習しているあなたなら、お分かりかと思います。

 

そのルーティングについて、例題で解説致しますね。

 

【例題】

routes.rbでは、resourcesを使ってルーティングを定義するということは、Railsを学習してきたあなたなら知っているかと思います。

 

そして使うのが、「resources」というコード。

 

しかし、resourcesの代わりにresource(単数形)を使ってルーティングを定義することもできます。

 

resourceを利用した際に生成されるルーティングについて、resourcesを用いた場合との主な違いを2点、説明してください。

 

【解説】

次の2つの違いがあります。

1.idつきのパスが生成されません

show, editアクションの実行に、idが必要ない場合に有効となります。

 

2. indexアクション用のルーティングが生成されない

 

resourcesの場合

生成されるルーティング

```
Prefix   Verb URI Pattern Controller#Action
posts   GET /posts(.:format) posts#index
     POST /posts(.:format) posts#create
new_post  GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post    GET /posts/:id(.:format) posts#show
     PATCH /posts/:id(.:format) posts#update
     PUT /posts/:id(.:format) posts#update
     DELETE /posts/:id(.:format) posts#destroy ```

 

resourceの場合

生成されるルーティング 

```
Prefix Verb URI Pattern Controller#Action
new_posts GET /posts/new(.:format) posts#new
edit_posts GET /posts/edit(.:format) posts#edit
posts GET /posts(.:format) posts#show
PATCH /posts(.:format) posts#update
PUT /posts(.:format) posts#update
DELETE /posts(.:format) posts#destroy
POST /posts(.:format) posts#create
```

 

以上となります、参考になれば幸いです。

最後まで読んで頂き、ありがとうございました。