Java初級者からみたRailsのココがすごい
背景
現在Railsチュートリアル第7章を学習しています。 その中で私の中では結構衝撃的な機能に触れる機会があったので備忘録として。
Railsではconfig/routes.rbにルーティングを記載して制御します。 Progateの講座だと必要なview,controller,actionの組み合わせは逐一記載していました。
Userリソースだとこんな感じ
get 'users/index' => "users#index" get "users/:id/show" => "users#show" get "signup" => "users#new" post "users/create" => "users#create" get "users/:id/edit" => "users#edit" post "users/:id/update" => "users#update" post "users/:id/destroy" => "users#destroy"
それがなんとこんなふうに書けるらしい
resources :users
resources :usersという行は、ユーザー情報を表示するURL (/users/1) を追加するためだけのものではありません。サンプルアプリケーションにこの1行を追加すると、ユーザーのURLを生成するための多数の名前付きルート (5.3.3) と共に、RESTfulなUsersリソースで必要となるすべてのアクションが利用できるようになるのです。 ※Railsチュートリアルより引用させていただきました。
細かいURLの違いはありますが、たった一行でこれだけのルーティングが設定できるのは結構衝撃でした。
しかもアクションまで勝手に作ってくれているらしい。 直後でUsersControllerにshowアクションを定義しているところをみると、「resources :users」で暗黙的に定義してオーバーライドしているイメージなのかな?