Rails scaffoldを初心者向けに解説!実際にアプリを作ってみよう!
web開発
2016/09/01

Ruby on Railsのscaffoldの使い方を解説します。
本記事では、Ruby on RailsでのWEB開発経験がある筆者が、scaffoldについて初心者でもわかるように、実際にscaffoldでWEBアプリケーションを作成しながら解説しています。
画像を使ってscaffoldについて解説してるので非常にわかりやすい構成になっています。
本記事を読み終える頃には、scaffoldの基礎がマスター出来ているでしょう。
Rails scaffoldとは?
まずはRailsのscaffoldとは何かについて解説します。
scaffoldとは、Railsに備わっているコマンドの1つで、ルーティングやコントローラー(controller)、ビュー(view)、モデル(model)とテーブル(データベース)の記述やファイルなどを自動で作成してくれるコマンドです。
controllerやmodelを作成する手間を省くことができます。
scaffoldを使って作成されるルーティングは、Railsが定める7つのアクションになります。(index・show・new・edit・create・update・destroyアクションの7つです。)
以上がRails scaffoldについての簡単な説明になりますが、さすがにこれだけでは分かりにくいので、以下からは実際にRailsのscaffoldを使って、WEBアプリケーションを作ってみます。
Rails scaffoldの使い方
Railsでscaffoldを使う時は、まず、ターミナルにコマンドを打ち込みます。ターミナルを開いて、次のコマンドを打ち込み、「sample_app」というアプリケーションを作成しましょう。
1 |
$ rails new sample_app |
そして、sample_appのディレクトリに移動します。以下のコマンドを打ち込みましょう。
1 |
$ cd sample_app |
いよいよ次からscaffoldを使っていきます。まずは、scaffoldの使い方から解説します。
Railsのscaffoldでは、以下のような書式をターミナルに打ち込みます。
※これはあくまでも例なので、実際には打ち込まないでください。
【scaffoldのコマンド書式】
1 |
$ rails g scaffold モデル名 カラム名①:データの型① カラム名②:データの型②・・・ |
データの型①とカラム名②の間に「,(カンマ)」を打ってしまわないに気をつけましょう。
「rails g」の「g」は「generate」の略です。「g」を「generate」と打っても大丈夫です。
例えば、今回はTweetモデルに対して、titleというカラム(stirng型)とcontentというカラム(text型)を与えるということをやります。その場合のscaffoldの書式は以下のようになります。
では、scaffoldを使っていきます。以下のコマンドをターミナルに打ち込みましょう。
1 |
$ rails g scaffold Tweet title:string content:text |
ターミナルを見てみると、scaffoldによってたくさんのファイルが作成されていることがわかります。
そして、ターミナルに以下のコマンドを打ち込んでルーティングを確認してみましょう。
1 |
$ rake routes |
すると、以下のように、scaffoldによって作成されたルーティングの一覧が表示されます。scaffoldで、ルーティングも自動的に作成されたことがわかりました。
次からは、実際にscaffoldで作成されたページにアクセスしてみます。
Rails scaffoldで作成されたアプリケーションを使ってみよう
ここからは、Rails scaffoldで作成したアプリケーションを使ってみましょう。
まずは、ターミナルに以下のコマンドを打ち込んでサーバーを起動させます。
1 |
$ rails s |
※「rails s」の「s」は「server」の略です。「rails server」とターミナルに打ち込んでも大丈夫です。
ブラウザを開いて、「localhost:3000/tweets/new」にアクセスしてみましょう。以下のような、新規登録画面がscaffoldによって作成されているはずです。
ツイートを作成してみよう
「localhost:3000/tweets/new」ページには、自分で作成した「title」と「content」というカラムが設置されていることにも注目しましょう。ここからは、フォームに適当な値を入力して、ツイートを作成してみます。
まずは2つのフォームに何か適当な値を入れてみましょう。
フォームに値を入力したら、フォームの下にある「Create Tweet」ボタンをクリックします。
すると、以下のような画面に遷移するはずです。
URLに注目すると、「localhost:3000/tweets/1」となっています。これは、先ほどの「rake routes」コマンドでルーティングの一覧を見ればお分かり頂けますが、scaffoldによって自動的に作成されたtweetsコントローラーのshowアクションに相当するページです。
ツイートの一覧ページにアクセスしてみよう
ツイートを1つ作成したら、再び新規登録画面(localhost:3000/tweets/new)へアクセスして、何個かツイートを作成しましょう。
ツイートを何個か作成したら、「localhost:3000/tweets」にアクセスしてみましょう。すると、以下の画面のように、作成したツイートの一覧を見ることができます。
これは、scaffoldによって作成された、tweetsコントローラーのindexアクションに相当するページです。
また、右にある「Show」をクリックすれば、ツイートの詳細ページへ。「Edit」をクリックすればツイートの編集ページへ。「Destroy」をクリックすればツイートを削除することができます。
いかがでしたか?Rails scaffoldの説明は以上です。
Rails scaffoldの便利さがお分かり頂けたかと思います。
Rails scaffoldを使えば、コントローラーやモデル、ビューなどを自動で作成してくれるとても便利な機能でした。ぜひこれを機に、scaffoldの基礎をマスターしてください。
udemyでは、Ruby on Railsを3日でマスターできる講座を用意しています。ぜひ受講して、Ruby on Railsをマスターしてみてはいかがでしょうか?