読者です 読者をやめる 読者になる 読者になる

Abnormalに生きる

化学の研究者→消防士→ITエンジニア(2016年11月〜)

RailsのScaffoldを使って10分でアプリを作ってみた

Ruby on Rails Ruby

 今回は、Ruby on RailsのScaffold機能を使って、簡単なアプリケーションを作ってみました。今回のアプリケーション作成はクラウド型のIDEであるCloud9を使用したため、開発環境の構築まで含めてもほんとに10分かかってないです。

環境
Ruby 2.3.0
Rails 4.2.5
Mac OS X Yosemite 10.10.5
 

まずは、Railsアプリケーションを作成するためにコマンドライン上に以下のコマンドを入力し実行します。今回は「book_log」という超シンプルな蔵書管理アプリケーションをつくることとします。

rails new book_log

続いてScaffold機能を使います。

rails generate scaffold book title:string price:integer published:date

scaffoldの次の「book」はモデル名で、そのあとに続く「title:string」は、蔵書管理するためのテーブルに使う「フィールド名:データ型」です。 Scaffold機能を使うと、アプリケーションの動作に必要なコントローラクラスからテンプレートファイル、モデルクラス、マイグレーションファイルまでまとめて自動生成してくれます。

自動生成されたコントローラを見てみるとこんな感じです。

f:id:hirotsuru314:20160405095711p:plain f:id:hirotsuru314:20160405095721p:plain

 基本的なCRUD(Create-Read-Update-Delete)機能はすでに実装されています!

 マイグレーションによるテーブルの作成だけは自分で実行する必要があるので、rakeコマンドを実行します。

rake db:migrate

この時点で、ほぼ完成です!ちょっと簡単すぎますね。できたものを見てみましょう。サーバを起動し、ブラウザにアドレスを指定すると。

f:id:hirotsuru314:20160405092527p:plain

New bookを押し、本を登録してみます。

f:id:hirotsuru314:20160405093234p:plain

すると先ほどのトップページに登録した本の情報が追加されました。

f:id:hirotsuru314:20160405093754p:plain

このように、Scaffold機能を使うとアプリケーションに必要な基本的な機能はだいたい実装されています。というか自動生成されすぎて、あまりにも自分で何もしないので罪悪感が半端ないです。。ただ、どんな機能でも言えることだと思いますが、要は使いどころ次第だと思います。例えば、メンテナンス画面などの凝ったレイアウトが要求されないようなページを作るときには非常に効率的だと思います。  さらに、私がScaffold機能を使ってもいいなーって思う一番のポイントは、

 Railsによる基本的なCRUD実装を理解する最初のステップとして使う 

です。どういうことかというと、自動生成されたコードをしっかり読み解けば、それぞれのアクションメソッドの役割だったり、ルーティングだったり学ぶべきところはたくさんあると思います。  私は、初学用にまず、Scaffoldを使って簡単なアプリケーションをつくり、同じものをScaffoldを使わずに自分で書いてみるというやり方でRailsの基本的な使い方やMVCモデルについて学びました。

 次回からは、この蔵書管理アプリケーションのクオリティーをどんどん上げていく過程を書いていきたいと思います。最終的にはfacebooktwitterアカウントからログインしたり、amazonから本の情報を取得して、ほしいものリストをつくったりというレベルまで作り込んでいきます!