Railsチュートリアル(第四版)学習記録: 1章

まずは1.2.2のrailsをインストールするところ。このgemってのがよくわからないんですよね。調べによると「ruby用のパッケージ管理システム。コマンド一つでパッケージをインストール、削除、更新などできる」ものらしい。簡単に言えば、gemっていう命令をrubyに出すとrailsをインストールしてくれたり、その他必要なパッケージを導入したり消したりしてくれるということ。ということで早速railsをバージョンを指定してインストール。-vでバージョン指定です。

続いて、rails newを実行し、railsアプリケーションのスケルトンを作ります。 今回2回目なのでプロジェクト名を一応変えてます。

次はbundlerを実行してアプリに必要なgemをインストールします。つまり、今回のアプリに必要になるパッケージ群を全部インストールしちゃおうって感じ。bundlerとはrubyのライブラリ管理ツールのことで、railsでは標準採用されているそう。bundle installってrubyのライブラリ管理ツールさん、gemfileにある必要なパッケージをインストールしてくれ!ってことなんですね。とりあえず指示通り、ruby gemごとにバージョンを指示したgemfileをコピペして、bundle installを実行。 ここ、cdっていうのはchange directoryって意味で特定の入れ物に移動してねって感じ。今回は自分の作るアプリの入れ物に移動。

必要なパッケージ群がインストールされたのでこれでアプリを作る準備完了。次にローカルwebサーバーを立ち上げるのですが、コマンドを実行するだけでok。チュートリアルではrails serverで行けるって書いてあるのですがportナンバーを指定(?)しないとダメらしく(これはググりました)、指定して再実行。 この時できれば新しいターミナルを開いてサーバー立ち上げた方が良いです。その際にもcdを忘れずに。終了時はcontrol + Cです(macの場合)。

次はMVCアーキテクチャについてですね。railsチュートリアルのでも十分わかりやすいのですが、僕も理解のために書いてみました。

次にapplicationコントローラに直接renderメソッドを書いて僕たちがみている画面の描画(ここではhello world)をするのですが、これは今回と次回のtoyappでしか使わないくらい稀だと思います。普通はviewに描画したhtmlを表示するのですが、今回は簡易のアプリなのでコントローラでrenderメソッドにhtmlを指定しそのまま表示させています。

これでコントローラの中に「こういう動きしてね!」っていう命令をだすアクションを記述することができました。でもこのままだと動きません。次に「最初にこのページ出してね」と指示することが必要になります。それがルーターです。ルーターではURLとコントローラとアクションを指定することにより、「どのURLの時にどのコントローラのどのアクションを使うか」を指示できます。今回はルートのURL(要は最初に表示されるページで”/”だけで表される。)を変更したいので以下のように記述。

さて、いよいよgithubにレポジトリを作リます。まずターミナルに以下を入力します。git initはinitializeで最初のレポジトリの準備をローカル環境にします。git add -Aはgitに全てを追加してくださいといった意味。git commit -m “”でコミット用のメッセージをつけられる。ここでは「最初の変更加えるよー」みたいに。

まずは指示に従って公開鍵を取得します。取得したらgithubのプロフィールにあるSSHkeyというところにこれをペーストします。その後、create repositoryをクリックして、新しいレポジトリを作ります。レポジトリができたら以下を入力してgithubに反映させます。

今回ブランチの作り方も学びます。マスターとブランチの二つがある中で先ほどまで作業していたのはmasterです。masterでは自分の書いたコードが即座に反映されます。一方でブランチでは特定のトピックブランチを作ることによって、自ら変更をmergeするまではミスしたら消せるというメリットがあります。実際これ以降の章でもブランチを作って行なっていきました。herokuへのデプロイは指示に従えばエラーが起きないと思うので割愛。

とりあえず一章の二周目を終えました。一周目、正直写経をしただけで理解できているか不安だったのですが、意外に理解できていたようでスイスイ進みました。また、rails tutorialの指示にはなかったgithubの使い方もググって短時間でできたのはよかったなと。このシリーズ初回なのでものすごく力を入れて書いてしまいましたが多分この勢いで書き続けるのは不可能なので、もう少しブログは簡潔なものにしようかな。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする