Ruby on Rails tutorialを通してのメモ (第2章)
前回まで
- MVCについての説明、デフォルトページに「hello, world!」と表示させる作業の説明をしています。
作業開始
point
- 今回から2章に入ります。
- 2章では、Toyアプリケーションと呼ばれるRailsのアプリケーションをscaffoldを使用して簡単に作ります。
point
- Toyアプリケーションをどうやって作るかの計画を立てる。
- まずはrails new コマンドを実行する。バージョン指定を忘れずに行いたいところ。😕
私は今回のバージョンのrailsがなかったため($ gem list rails コマンドで確認したところありませんでした...)改めて該当のrails gemをインストールしました。↓ ある人は不要な作業です!
$ gem install rails -v 5.1.6
gemに限らずですが、インストールしたら確認をして見ましょう!
$ gem list rails
railsのgemのバージョン に 「5.1.6」が追加されていました!
改めてrails newをしました!
$ cd ~/environment
$ rails _5.1.6_ new toy_app
$ cd toy_app/
コピペですが、environmentディレクトリ内にに移動し、「rails (version) new アプリ名」という形でコマンドを実行しています!
- リスト2.1に従い、Gemfileを編集する。コピペ推奨です。
- $ bundle install --without production を実行する。
- gitコマンドのところをを飛ばします!🙏(説明が長くなるので、ローカルでやりたいです!できる人はやってもらったほうがいいかも!)
- どうやら前回の「Hello, world!」を表示させる手順をもう一度行うようなので、コントローラ(application_controller.rb)、ルーティング(routes.rb)をリスト2.2,2.3に従い編集します。
point
- アプリケーションを始めるにあたり、まずは設計が必要になります。主観ですが、業務では最初は設計に関わることはなかなかできない部分で、チーム開発においてはとても楽しい部分ではあります。
- どうやらこのアプリケーションはユーザーが存在するようです。なのでユーザー情報を登録します。各ユーザーには番号(id),名前(name),メールアドレス(email)を型をつけて持たせます。型とは、こちら参照して見てください。😭個人的には数字や文字にはデータを入れる専用の箱が必要なんだな、と解釈しております。
- マイクロポストですが、"ポスト" というくらいなので投稿する機能のことを指しています。いわゆるTwitterのツイート機能と考えていいと思います😄詰まる所、投稿機能にはどのような情報が必要かをここで設計(考える)するようですね。
- 必要な情報は番号(id),投稿したテキスト(content),誰が投稿したかを持つ情報(user_id) を使います。
point
$ rails generate scaffold User name:string email:string
- name:string email:string の部分がオプションにあたる所です。 先ほど(2.1.1)のtutolialでは図の2.2の通りにモデルを実装しました。 idは自動でデータベースに追加されるようです😟。オプションにはidはありませんでしたね。
- 続いて、マイグレーションを実行する必要があるようです。
$ rails db:migrate
- マイグレーションとは先ほどモデルを実装したものを実際にSQLを発行しデータベースを作成することを言います。$ rails generate と $ rails db:migrate はセットで覚えておきたい所です。
- ブラウザで動作を確認して見ましょう。「hello, world!」が見えていますか?
私の場合はHerokuにデプロイしてないので、localhost:3000が最初のトップページです。ローカルでの身作成した方は、Chromeなどのブラウザでlocalhost:3000と入力して確認をして見ましょう。
$ rails server
point
to be continued...
- 学習というよりかは、ブログ投稿が先行しています。手段と目的が逆的な。🤔結果的には身になることだから一手段として文章を考えることが好きな方にはオススメの勉強方法です。。
- もし、難しいと感じた場合はprogateなど環境構築のいらない学習サイトでサクサク進めることをオススメします。
オススメの曲