Ruby on Rails tutorialを通してのメモ (第2章)

前回まで

taokiengineer.hatenadiary.jp

 

  • 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) を使います。

 

 @ 2.2 Userリソース 

point

  • scaffoldを使用して、Userモデルを作成する。ここでは先ほど設計した通りの情報、型を用いて実際にデータを保存するためのデータベース(以降モデル)を実装します。
  • コマンドの打ち間違いには注意をしたい所。scaffoldを使用すると何かと便利みたいです。私自身は使ったことがありません。この機会に習うより慣れろの精神で身に付けたいですね😕 
  • scaffoldは引数にリソース名を単数系にしたもの(ここではUser)を使い、オプションにデータモデルの属性を追加します。
$ 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

 

 @ 2.2.1 ユーザーページを探検する

point

  •  scaffoldにより「hello, world!」が表示されていることに違和感を抱きました。前回はルーティングを'application#hello'のように編集するという手間がありました。
  • ということで、ルーティング(パス、URL)は今どうなっているのか、確認して見ましょう。
  • まずは/usersを見て見ましょう。

 

localhost:3000/Users

$ rails server

tutolialの図2.4にあるように、ユーザーを登録できる画面が出てくれば成功です。図に沿って実際にユーザー登録、編集、削除ができます。scaffold、凄いです。😵

  

to be continued... 
 
  • 学習というよりかは、ブログ投稿が先行しています。手段と目的が逆的な。🤔結果的には身になることだから一手段として文章を考えることが好きな方にはオススメの勉強方法です。。
  • もし、難しいと感じた場合はprogateなど環境構築のいらない学習サイトでサクサク進めることをオススメします。
 
オススメの曲
 
 Alan WalkerのDarkside
 
Fall into the darkside
 
ダークサイドへ...カッコイイ!🔥