Ruby on Rails チュートリアル をやってみた その2
前回の「Ruby on Rails チュートリアル をやってみた その1 - IxD's blog」では第1章でしたが、今回は
こちらのチュートリアルをやっていきます。
今回はその2ということで、「第2章 Toyアプリケーション」です。
記事にはバージョン指定して
$ cd ~/workspace
$ rails _4.2.2_ new toy_app
$ cd toy_app/
となっていますが、
$ cd ~/workspace
$ rails new toy_app
$ cd toy_app/
としています。
当方で作成した環境とチュートリアルで想定している環境が異なるため、Gemfileの編集は行ってません。
因みにGemfieで指定されているバージョンとnewで作成されたアプリケーションにおける細かいバージョンの違いは多少ありますが、大きな違いはない。x.y.zのzが違う程度です。
また、前回の記事でも書いたように、BitbucketやHerokuは使用していないため、当記事ではBitbucketやHerokuに関する箇所は無視します。ですので、
2.1の最後に出てくるコマンドは、
$ git commit -am "Add hello"
$ heroku create
$ git push heroku master
ではなく、
$ git commit -am "Add hello"
としました。
2.1.1 ユーザーのモデル設計
説明のみなので特にありません。
2.1.2 マイクロポストのモデル設計
説明のみなので特にありません。
$ rails server -b $IP -p $PORT
こちら実行すると当方の環境では以下のようなエラーが出ました。
`getaddrinfo': getaddrinfo: Name or service not known (SocketError)
前回の記事で作成した環境はサーバマシンに作成しているので、他のマシンから見えないと困ってしまいます。
ですので前回の記事に記載した、以下のコマンドを実行します。
$ rails server -d -b 0.0.0.0
2.2.1 ユーザーページを探索する
冒頭に「/」で表示されるのはRailsのデフォルトページが表示され、という記述がありますが、2.1の最後にリスト1.8と1.9で推奨した「Hello, world!」での手順と同様の手順を〜という記述があります。
この作業を行っているとデフォルトページではなく、Hello, world!となっているはずです。
と思いましたがリスト1.10をやるとは書かれていませんでしたので、デフォルトページが表示される、が正解ですね。
2.2.2 MVCの挙動
説明のみなので特にありません。
2.2.3 自動生成したUsersリソースの欠点
説明のみなので特にありません。
2.3 Micropostsリソース
説明のみなので特にありません。
2.3.1 マイクロポストのページを探検する
躓くポイントは特にありませんでした。
2.3.2 マイクロポストをマイクロにする
躓くポイントは特にありませんでした。
2.3.3 ユーザーとマイクロポストをhas_manyで関連づける
リスト2.10 マイクロポストの最大文字数を140文字に制限する。
で
validates :content, length: { maximum: 140 }
validates:の場合はコロンの前にスペースがありますが、miximumの場合はコロンの後にスペースがあります。
この違いが一見してわかりませんでした。
命令に対してはコロンの前にスペース、パラメータ等はコロンの後にスペース、ということなんですかね?
ちなみに、rails consoleの箇所でコマンド実行順序を間違えてしまい、エラーが出ましたが、
toy_app以下のapp、db、config、testを削除してからgit checkout -fを実行し、2.1から再度やり直すことで元に戻せました。
が、後々考えてみると、こちらは確認するだけだったので特に必要なかったですね…
なんらか間違えてリカバーする方法が他にない場合はこのようにすると良いかもしれません。
2.3.4 継承の階層
説明のみなので特にありません。
$ git status
$ git add -A
$ git commit -m "Finish toy app"
$ git push
とありますが、Bitbucketは使っていませんので、
$ git status
$ git add -A
$ git commit -m "Finish toy app"
と、しました。
同様に、Herokuも使用していないので、
$ git push heroku
と
$ heroku run rake db:migrate
は実行しません。
2.4 最後に
説明のみなので特にありません。
2.4.1 本章のまとめ
説明のみなので特にありません。
2.5 演習
解答はこちらで載せるのもどうかと思いますので、あえて掲載はしません。
次回、「Ruby on Rails チュートリアル をやってみた その3 - IxD's blog」は
をやっていきます。