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スキル講座

海外の人気講師によるWeb制作のベストセラ―講座

【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)
【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)

ウェブデザインの基礎、サーバーサイドプログラミング、モバイルアプリ開発、APIプログラミングなどを網羅的にマスターできる

最新!iOS11アプリ開発講座

【6日で速習】iOS 11 Swift 4アプリ開発入門 決定版 20個のアプリを作る ARKit,CoreML,NFC
【6日で速習】iOS 11 Swift 4アプリ開発入門 決定版 20個のアプリを作る ARKit,CoreML,NFC

地図検索、ARなど20個以上のアプリを作って学べる実践講座

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

【世界で5万人が受講】実践 Python データサイエンス
【世界で5万人が受講】実践 Python データサイエンス

データ解析の基本、可視化、統計、機械学習などデータサイエンスに関するあらゆる実践的なスキルがPythonで身に付く!

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

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習

初心者向けの人工知能と機械学習のコース。文字認識や株価分析なども実施

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事