
知識ゼロからの 『とほほのRuby on Rails入門』 #11
これはプログラミング初心者がRuby on Railsの勉強をしていく記録です。
◇ この記事で勉強しているサイト
◇ 前回までの記事一覧
リファクタリングの続きから!
ルート情報の一括指定
routes.rbでbookに関するルーティングを削除し、代わりに「resources :books」と書くようです。
このresources :booksだけで、books_controllerに対するURLのルーティング設定を一括指定できるとのこと。
え、簡単すぎませんか。どういう原理なんでしょうか。
resourcesを指定すると次の8個のルーティングがまとめて生成されるそうです。

下記のサイトから引用させてもらいました。
今までbooks_controllerに書いてきたメソッドはテキトーな名前をつけていた訳ではなくて、これで生成されるルーティングに合わせていたんですね。


めちゃくちゃシンプルになりましたね。
しかもよくよく見ると、一番上にresources :usersってあるじゃないですか!
users_controllerをスキャフォールドで作った時に自動で追記されていたんですかね。すごすぎる。
すぐにあんなに色々な機能(新規作成とか編集とか削除とか)が使えたのはこの記述のおかげだったんですね。
実はスキャフォールドの練習のときによく分からなくて読み飛ばしていた部分がありました。
「情報の作成、一覧/詳細、編集、削除を行う事ができるこの一連の機能群を CRUD (Create,Read,Update,Delete) と呼びます。」と書いてありました。
今やっと意味が分かりました。
“データベースを活用するようなアプリケーションには上記のCRUDの機能がおのずと必要であり、それらがいっぺんに作れるようにRailsにはスキャフォールドという機能(開発の足場となるような機能)があって、ルーティングもresourcesという記述で一括で設定できるようにしてある”ということですよね。
Start Command Promptでアプリケーションのフォルダに移動し「rails routes」と入力すると、現在定義されているルーティング情報の一覧が確認できるようです。
routes.rbにresourcesを使って書くとルーティングがどうなっているのか一目で分からなくなるので、便利そうですね。

まだまだ下に続いていました。
書いた覚えのないルーティングがたくさんあるのですが、これはrails newでアプリケーションを作成したときに作られたものなのでしょうか。
画像の文字がだいぶ小さくなってしまっていますが、左側に書いてあるPrefixの下の部分が相対パスとして使える名前みたいです。
これらに_pathと付けて使うので、例えば1番上のusersなら「users_path」、3番目のnew_userなら「new_user_path」といった感じみたいです。
今回はここまで!
あと少しと言っておきながらまだしばらく続きそうです。
もうちょっと先に ”コメント機能を追加する” という大物が待っているみたいです。
最後までがんばります!