はじめに
このブログ記事は、私(Kodak)自身のRailsの勉強記録として書いています。
『Ruby on Railsチュートリアル』の演習と解答をもくもくと書いているだけの記事なので、興味の無い方は軽くスルーしてあげてください。他にも、まだ『Railsチュートリアル』の演習に挑戦していない方、これから『Railsチュートリアル』をやるぞ!という方は(演習の解答の)ネタバレになりますので、スルーしてください。
Ruby on Rails チュートリアルとは?
Ruby業界でRailsを使い始めるなら、まず最初に初めるRails入門サイトです。
電子書籍版は有料ですが、Webサイトにあるオンライン版は無料なので、誰でも読む(Railsにチャレンジする)事ができます。
railstutorial.jp
全部で14章あり、かなりのボリュームですが、これを読む事でRailsの基礎を学ぶ事ができ、ちょっとしたWebアプリケーションを作れるレベルにはなれる?とのこと。
各章毎に演習問題が複数あり、これを解いていく事でRailsへの理解を深めていく事ができる様になっています。
環境について
・Ruby 2.5.0-dev
・Rails 5.1.4
・バージョン管理ツール:GitHub(https://github.com/Kodak4400)
演習と解答
2.2.1 ユーザーページを探索する<演習>
1. CSSを知っている読者へ: 新しいユーザーを作成し、ブラウザのHTMLインスペクター機能を使って「User was successfully created.」の箇所を調べてみてください。ブラウザをリロードすると、その箇所はどうなるでしょうか?
【解答】消える。
2. emailを入力せず、名前だけを入力しようとした場合、どうなるでしょうか?
【解答】正常終了して、emailなしのユーザーが作成される。
3. 「@example.com」のような間違ったメールアドレスを入力して更新しようとした場合、どうなるでしょうか?
【解答】正常終了して、間違ったメールアドレスでユーザーが作成される。
4. 上記の演習で作成したユーザーを削除してみてください。ユーザーを削除したとき、Railsはどんなメッセージを表示するでしょうか?
【解答】「User was successfully destroyed.」と表示される。
2.2.2 MVCの挙動<演習>
1. 図 2.11を参考にしながら、/users/1/edit というURLにアクセスしたときの振る舞いについて図を書いてみてください。
【解答】以下の通り。
2. 図示した振る舞いを見ながら、Scaffoldで生成されたコードの中でデータベースからユーザー情報を取得しているコードを探してみてください。
【解答】以下の通り。
■users_controller.rb
def set_user @user = User.find(params[:id]) end
3. ユーザーの情報を編集するページのファイル名は何でしょうか?
【解答】users/edit.html.erb
2.3.1 マイクロポストを探検する<演習>
1. CSSを知っている読者へ: 新しいマイクロポストを作成し、ブラウザのHTMLインスペクター機能を使って「Micropost was successfully created.」の箇所を調べてみてください。ブラウザをリロードすると、その箇所はどうなるでしょうか?
【解答】消える。
2. マイクロポストの作成画面で、ContentもUserも空にして作成しようとするどうなるでしょうか?
【解答】作成される。
3. 141文字以上の文字列をContentに入力した状態で、マイクロポストを作成しようとするとどうなるでしょうか? (ヒント: WikipediaのRubyの記事にある1段落目がちょうど150文字程度ですが、どうなりますか?)
【解答】作成される。
4. 上記の演習で作成したマイクロポストを削除してみましょう。
実機操作のため割愛。
2.3.2 マイクロポストをマイクロにする<演習>
1. ユーザーのshowページを編集し、ユーザーの最初のマイクロポストを表示してみましょう。同ファイル内の他のコードから文法を推測してみてください (コラム 1.1で紹介した技術の出番です)。うまく表示できたかどうか、/users/1 にアクセスして確認してみましょう。
実機操作のため割愛。
2. リスト 2.16は、マイクロポストのContentが存在しているかどうかを検証するバリデーションです。マイクロポストが空でないことを検証できているかどうか、実際に試してみましょう (図 2.16のようになっていると成功です)。
実機操作のため割愛。
3. リスト 2.17のFILL_INとなっている箇所を書き換えて、Userモデルのnameとemailが存在していることを検証してみてください (図 2.17)。
実機操作のため割愛。