Ruby on Rails4でアプリ開発を学ぶ -Ruby初学からアプリ作成まで-
はじめに
この度、Ruby on Rails4で極簡単なWebアプリを作りましたので、Rubyを学ぶところからアプリを作成するまでの流れを自身のメモも兼ねてご紹介します。
「Rubyを触ったこともないけど、他の言語なら文法くらいならわかるよ」という方向けの記事です。よかったら参考にしてください。
目次
モチベーション
何かつくりたいという動機はあった方がいい
Rubyを触ったことがない人がアプリを作って公開するとなると、ちょっとプログラミングをしたことがある人なら「時間がかかるかも」と察すると思います。
そのためには、何か目標となる(作りたい)ものをまず簡単に想像しておくと挫折することなくやり通すことが出来ると思います。
Railsはデータの新規作成、更新、削除を簡単に行うことができるので、例えば、スケジュール帳のようなものを作るのが得意です。
Rubyを勉強しよう
文法とWebアプリを同時に学ぶ本
私はこの本で、Rubyの文法とWebアプリの一連の作り方について学びました。
この本を選んだ理由は、
- お金の節約
- フレームワークでしか開発できない薄っぺらい知識にしたくない
の2点です。
Rubyの文法に関してはネットでいくらでもカバーできるだろうと考え、Webアプリ開発寄りの本を選びました。実際、この書籍でも文法は学ぶことができます。(そういう本ですから)
また、エンジニア(似非)としてフレームワーク頼みじゃなくて、根本的な知識も身につけておきたいという思いでこの書籍を選びました。
文法の本
Rubyの文法の書籍をお守りとして傍らに置いておきたいという場合はこちらが鉄板でしょう。
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/03/31
- メディア: 単行本
- 購入: 15人 クリック: 394回
- この商品を含むブログ (81件) を見る
また、IPAでもRubyとRailsの教材が公開されていたりするのでRubyの文法に関してはこちらを見ておくだけでも良いかもしれません。
IPA 独立行政法人 情報処理推進機構:OSS人材育成:OSSモデルカリキュラム導入実証
まずは1ヶ月、じっくりとRubyベタ打ちでWebアプリ開発するところまで勉強しました。私は比較的に低スペなので皆さんはもっと早く習得できると思います。
Ruby on Rails4フレームワークを勉強しよう
書籍はこれ一択
Rubyの勉強が終わった頃、丁度いい時期にこちらの書籍が発売されました。
内容も充実しているということと、Rails4の書籍は本当に種類が少ないためこれ一択でした。
Ruby on Rails 4 アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/11
- メディア: 大型本
- この商品を含むブログ (2件) を見る
内容的には、まず序盤にRailsとはなんぞやというところからアプリ作成までを一通り学びます。その後、Railsの採用するMVCモデルであるMode・View・Controlのそれぞれについて知識を深めて行く構成になっています。
なので、正直、序盤だけで何かしら動くものが完成します。フレームワークを使用するからこそのスピード感だと思います。
Railsは、「設定より規約」という理念がありますので、所謂「書き方の作法」について少々厳しいところがあります。よって、Railsを学ぶということはそういう決まりごとを勉強する、ということになります。
この書籍で1ヶ月ほどお勉強。
つまづいたら...
もしかしたらRailsの勉強中に躓いてしまうかもしれません。私は躓きましたw
そこで、こちら。
Ruby on Rails 4入門 (全28回) - プログラミングならドットインストール
書籍だと覚えること多すぎ、意味わかんない、となったら頭をリセットしてドットインストールさんに教えて貰いましょう。
「3週くらいすると理解できる」というのをどこかで見た覚えがあります。正直3週もやってられっかと思いましたが、いや、3週すべきです。むしろ、繰り返し見てしまいます。
書籍の情報を全て覚える必要はありません。流れを一通りつかんだら、書籍の力を借りて色んな機能を付けて改造していってみましょう。
勉強方法については以上です。
ここからは、実際にアプリを作成する流れを紹介します。
実際にアプリを作ってみよう
CRUD機能*1を持ったアプリの簡単な作成手順について紹介します。開発環境等については書籍をご確認ください。
アプリケーションの作成
アプリケーションと言っても現時点では概念的なものです。(入れ物)
アプリケーションを置くところにcdコマンドで移動し以下を入力します。ここでは、本を管理するアプリケーションということで、アプリ名をlibraryとします。
rails new library
Scaffolding機能の利用
箱が出来たので、次に中身を作ります。
RailsにはScaffolding機能というものがあり、CRUD機能を持つアプリの雛形を自動で作ってくれるものです。
アプリで本(book)を管理したいので、「書籍名・値段」のデータを管理するものとします。
cdコマンドで、先ほど作成したアプリケーション(フォルダ)に移動し、以下を入力します。
rails generate scaffold book title:string price:integer
scaffoldの後の名前は必ず単数形です(booksではダメ)。
後部の「title:string price:integer」は、「string(文字)型のtitleというデータ」「integer(整数)型のpriceというデータ」を扱うことを意味します。
これにより、bookのコントローラ、モデル、ビューの雛形が自動生成されます。
マイグレーションを行う
マイグレーションとは、データベースを構成することです。Scaffoldingではデータの定義はしても、データベースのテーブルまでは作ってくれませんので、別途コマンドを発行して作ります。
rake db:migrate
これでテーブルが作成され、データの格納ができるようになりました。
サーバを起動
サーバを起動し、どのようなアプリが作成されているか確認して見ましょう。
rails s
ローカルの3000番ポートにサーバが立ち上がるので、ブラウザで確認してみましょう。
Scaffoldでは「book」として作成しましたが、アクセスするURLは複数形になることに注意しましょう。(Scaffolding時、名前は単数形であること)
これはRailsの「設定より規則」の信念の元の規則になります。
アクセスすると、「New Book」というリンクが生成されているので、クリックして本のデータを登録してみましょう。
登録が完了すると、一覧に戻るので、Showで詳細を見てみるなり、Editでデータを書き換えたり、Destroyで削除したりしてみましょう。
以上で本当に小さなCRUD機能を有したアプリが完成です。