Rails scaffoldを初心者向けに解説!実際にアプリを作ってみよう!

web開発

2016/09/01

web開発

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」というアプリケーションを作成しましょう。

そして、sample_appのディレクトリに移動します。以下のコマンドを打ち込みましょう。

いよいよ次からscaffoldを使っていきます。まずは、scaffoldの使い方から解説します。

Railsのscaffoldでは、以下のような書式をターミナルに打ち込みます。

※これはあくまでも例なので、実際には打ち込まないでください。

【scaffoldのコマンド書式】

データの型①とカラム名②の間に「,(カンマ)」を打ってしまわないに気をつけましょう。

「rails g」の「g」は「generate」の略です。「g」を「generate」と打っても大丈夫です。

例えば、今回はTweetモデルに対して、titleというカラム(stirng型)とcontentというカラム(text型)を与えるということをやります。その場合のscaffoldの書式は以下のようになります。

scaffoldの書式例

では、scaffoldを使っていきます。以下のコマンドをターミナルに打ち込みましょう。

ターミナルを見てみると、scaffoldによってたくさんのファイルが作成されていることがわかります。scaffoldによって作成されたファイルの画像

そして、ターミナルに以下のコマンドを打ち込んでルーティングを確認してみましょう。

すると、以下のように、scaffoldによって作成されたルーティングの一覧が表示されます。scaffoldで、ルーティングも自動的に作成されたことがわかりました。

scaffoldによって作成されたルーティング一覧

次からは、実際にscaffoldで作成されたページにアクセスしてみます。

 

Rails scaffoldで作成されたアプリケーションを使ってみよう

ここからは、Rails scaffoldで作成したアプリケーションを使ってみましょう。

まずは、ターミナルに以下のコマンドを打ち込んでサーバーを起動させます。

※「rails s」の「s」は「server」の略です。「rails server」とターミナルに打ち込んでも大丈夫です。

ブラウザを開いて、「localhost:3000/tweets/new」にアクセスしてみましょう。以下のような、新規登録画面がscaffoldによって作成されているはずです。

scaffoldによって作成された新規登録画面

 

ツイートを作成してみよう

localhost:3000/tweets/new」ページには、自分で作成した「title」と「content」というカラムが設置されていることにも注目しましょう。ここからは、フォームに適当な値を入力して、ツイートを作成してみます。

まずは2つのフォームに何か適当な値を入れてみましょう。

scaffold解説画像

フォームに値を入力したら、フォームの下にある「Create Tweet」ボタンをクリックします。

scaffold解説画像

すると、以下のような画面に遷移するはずです。

scaffoldによる遷移画面

URLに注目すると、「localhost:3000/tweets/1」となっています。これは、先ほどの「rake routes」コマンドでルーティングの一覧を見ればお分かり頂けますが、scaffoldによって自動的に作成されたtweetsコントローラーのshowアクションに相当するページです。

 

ツイートの一覧ページにアクセスしてみよう

ツイートを1つ作成したら、再び新規登録画面(localhost:3000/tweets/new)へアクセスして、何個かツイートを作成しましょう。

ツイートを何個か作成したら、「localhost:3000/tweets」にアクセスしてみましょう。すると、以下の画面のように、作成したツイートの一覧を見ることができます。

scaffoldによって作成されたツイート一覧の画面

これは、scaffoldによって作成された、tweetsコントローラーのindexアクションに相当するページです。

また、右にある「Show」をクリックすれば、ツイートの詳細ページへ。「Edit」をクリックすればツイートの編集ページへ。「Destroy」をクリックすればツイートを削除することができます。

 

いかがでしたか?Rails scaffoldの説明は以上です。

Rails scaffoldの便利さがお分かり頂けたかと思います。

Rails scaffoldを使えば、コントローラーやモデル、ビューなどを自動で作成してくれるとても便利な機能でした。ぜひこれを機に、scaffoldの基礎をマスターしてください。

udemyでは、Ruby on Railsを3日でマスターできる講座を用意しています。ぜひ受講して、Ruby on Railsをマスターしてみてはいかがでしょうか?

目的別!最先端ITスキル講座

基礎的なパソコン操作の知識があればOK!

最新!iOS12アプリ開発講座

日本を代表するデータサイエンティスト辻真吾氏による人気講座

初級者から学べる人工知能講座の決定版

Udemy秋の大セール
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事