【Ruby on Railsチュートリアル】第一章がやっぱり大切でしょ。

Ruby on Railsチュートリアル

昨日から

railstutorial.jp

を始める。Progateよりこっちが先だったんじゃないか?自分。

あれはあれででも直感的にイメージを掴めて良かったんだと思うけど。

チュートリアル

いろんな言語を習得する時に、まずはその言語の公式チュートリアルをすることが一番の近道だと言われるが、Ruby on Railsのチュートリアルが日本語のチュートリアルがしっかりしてる。

でも、最初に作ったのが外人さんなんだね。

かなりオンライン版は親切だ。

更新もちゃんとされている。

Cloud9もちゃんとAWSでカバーしてるし。

好印象でしょ。

先月の今頃は更新されてない動画に憤慨してたから。

「お金払ってるんだから!」って。

まぁ、その時間はもしかしたら「無駄」だったのか?と後悔もちょっとしている。営業はあくまでも営業。インストラクターがつくまでは大人しくしている方がいいのかも。

で、早速チュートリアル開始。

第1章 ゼロからデプロイまで

すごいですよね。さっさとデプロイまでやっちゃいますの。

で、正直言えばここまでさっくり行ったと思ってたんです。

でも、進んでみたら途中で誤魔化した部分でやっぱり引っかかって、初期に戻る。

トライ アンド エラー

あるのみです。

AWSで開発環境を作る

まず開発環境を作ります。

これはAWSでサクッと。

AWSのクラウドIDEの外観の説明があったり、まぁ簡単に利用するまでの手順が書かれてます。

Create environment

ここだけを目指せばOKです。

上になんかInfomationがありますが、やっとGoogle翻訳で言っていることがわかったけど、「で、どうしたら?」ってリンクに行ったら日本語になってないし。ページ全部は無理だから断念。

多分、今の段階では必要ないと思う。

チュートリアルでもちゃんと触れてて(あ、このことだったんだ)13章あたりで解明するらしい。いつのことやら。

1章1日で習得可能だろうか?

新しいワークスペースが出来上がり!

で、初期画面のスクショがちょっと進んだスクショで最初は驚く。

読み進めると「あぁ〜」なんだけど。

大切なことは、インデントを「2」にすること。

なんか途中途中でそこで必要なのか?って単語が出てきて、一読目にはこんがらがる。

なので、一読目で理解しようとしないでスクショと合わせることを心掛ける方がいいかも。先の先に解答があるけど、そこまでスキップできるわけでもないから。

Railsをインストールする

ここではバージョン指定をしてインストールするらしい。

$ gem install rails -v 5.1.4

ローカル環境での説明も入るのでちゃんと読まないとです。

そう、私ったら読み飛ばし?と言うか、読んでないんだろうなが多いのでほんと大変です。

ここで何が必要なんだ?と思うタイプです。

でも、出来る人間はここでじゃないで全部を読むのです。

キャパが違うんでしょうな。

最初のアプリケーションを作る。

ここで「アプリケーション」なんですね。「プロジェクト」じゃなくて。言葉の違いでしょうが。印象が違う感じがする。

$ cd ~/environment
$ rails 5.1.4 new hello_app

ばーーーーとファイルが作成されます。 今ってすごい時代だよね。

そのディレクトリ別の用途が書いてあります。 これは便利ですね。

Bundler

とは?から知りたいわ。

Bundlerとは

gem同士の互換性を保ちながらパッケージの種類やバージョンを管理してくれる仕組みのことです。

by Bundlerとは? - Qiita

なるほど?で次に

次はBundlerを実行して、アプリケーションに必要なgemをインストールします。

でさ、今度はgemって何?になるわけです。

gem(じぇむ)は、Ruby用のパッケージ管理ツールになります。

by Ruby on Rails 初心者必見!パッケージ管理ツール『gem』を徹底解説 | Tech2GO

これで理解出来るのだろうか?

理解しちゃだめだ。慣れるんだ。

そう、理解なんて出来ないんだから、「こういうものなのね〜」で飲み込むんだ。

理解すると言うことはちゃんと説明が出来ることってことになるから、まずは慣れるんだ。そうすればいつかきっと理解できる・・はず。

Ruby用のライブラリを使う時に必要になるソフトウェアとかって説明があるのだけど、ソフトウェアって概念が20年前と体型が違っているよね?はレガシーエンジニアだけが感じること?

ま、そんなことです。

大体デメリットが

各gemのドキュメントは基本的に英語です。

ダメダメじゃーーん。by レガシーエンジニア

本筋に戻ります。

まず、hello_appディレクトリにあるGemfileの説明が細やかに・・・最終的にはリストに表示されてるので一括でコピペしました。

で、環境設定は保存しないでもいいらしいのだけど(する場所がないか)ファイルは当たり前だけど保存する。

って書いてない!って当たり前過ぎのことは割愛されてます。

「当たり前」の定義はどこにあるんだ!!!20年前の私が先輩エンジニアに噛み付いた言葉でしたね。

続いて、gemのインストールです。

う・・・備忘録で自分でみた時にわかりやすいようにって思ってたのに、脱線しすぎてるかも。

$ cd hello_app/
$ bundle install

これでやっとアプリケーションの実行が可能となるらしい。

「まずbundle updateを実行してください」というようなメッセージが表示される場合があります。その場合は、メッセージのとおりにbundle updateをまず実行しましょう

日本語では書かれないからね。まずbundle updateって言われたらその通りしたらいいってことね。

rails server

サーバーを実行するってことなのだけど、まずコードが書いてあるわけ。そうしたら、今までのターミナルでやりたいでしょ?

でもね、ターミナルタブを新しく開いてからにした方がいいのよ。

が後に書いてあるわけ。

$ cd ~/environment/hello_app/
$ rails server

まぁ、 もうさhello_appには居るけど変だなとは思うけど、コピペするよね。

もし、実行しちゃってたらctrl + cしてから新しいタブを開いてやり直せばOKよ。

そうしたら、上のPreview - Preview Running Applicationをクリック。

新しくタブが開くから、ブラウザを開くアイコンが右肩にあるからそれをクリックすると新しくブラウザが立ち上がって

f:id:kisokoji:20180131090648p:plain:w500

デフォルトのRailsページが表示されて第一段階クリアってところでしょうか。

この後、まずModel-View-Controller(MVC)の説明があります。

最初にアーキテクチャの概念を知ることが大切ってことでしょうか。

Hello,world!

MVCフレームワークアプリケーションという括りなんですね。

お約束のHello,world!からスタートです。

まずRubyではコントローラのアクションを変更するってことを知らなきゃなんだけど、それがさっきのアーキテクチャの概念?

$ ls app/controllers/*_controller.rb

これで現在あるコントローラが確認できるらしいのですが、ディレクトリを開いた方が早くないか?

Applicationコントローラに追加

class ApplicationController < ActionController::Base
 protect_from_forgery with: :exception
 
 def hello
  render html: "hello, world!"
 end
end

config/routes.rbにルートルーティングを設定

Rails.application.routes.draw do
 root 'application#hello'
end

これでさっき開いたブラウザでリロードして「hello,world!」になればOK。

ここまではまぁいいのよ。問題はこっからね。ってやっと問題か。

次にいく。