wired raven : Automatic Wing

文字通りの日記。主に思ったことやガジェットについて

今日のRailsチュートリアル(2章終わりまで)

2.3.3 ユーザーはたくさんのマイクロポストを持っている

演習

1.

ユーザーのshowページを編集し、ユーザーの最初のマイクロポストを表示してみましょう。同ファイル内の他のコードから文法を推測してみてください (コラム 1.1で紹介した技術の出番です)。うまく表示できたかどうか、/users/1 にアクセスして確認してみましょう。

1時間たっぷり考えて正解に至らず。検索して他の人のコードを参考に、というか、書き写した

views/show.html.erbの下のほうに

.
.
.
<p>
  <strong>first micropost:</strong>
  <%= @user.microposts.first.content %>
</p>

<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>

を追加。

これでクエリの発行から結果の表示までできるのか……。

どうも、SQLクエリを発行して、その結果を処理して、というイメージが離れない。

2.

リスト 2.16は、マイクロポストのContentが存在しているかどうかを検証するバリデーションです。マイクロポストが空でないことを検証できているかどうか、実際に試してみましょう (図 2.16のようになっていると成功です)。

指示通りにファイルを書き換えてみると、バリデーションチェックが動いてエラー表示になった

3.

リスト 2.17のFILL_INとなっている箇所を書き換えて、Userモデルのnameとemailが存在していることを検証してみてください (図 2.17)。

models/user.rbを次のように編集

class User < ApplicationRecord
    has_many :microposts
    validates :name, presence: true
    validates :email, presence: true
end

2.3.4 継承の階層

演習

1.

本番環境で2~3人のユーザーを作成してみましょう

作成はできるもののエラーが表示される。

f:id:sesuna:20190423184852p:plain

2.3.3.1の演習で改造したコードが悪さをしていたようで、削除後にherokuにデプロイしたら直った。

2.

本番環境で最初のユーザーのマイクロポストを作ってみましょう

これは普通に投稿できた。

3.

マイクロポストのContentに141文字以上を入力した状態で、マイクロポストを作成してみましょう。リスト 2.13で加えたバリデーションが本番環境でもうまく動くかどうか、確認してみてください。

バリデーションが動くことを確認した。

雑感

  • ざっとやってみたけど、理解度がすごく怪しい
  • 確実に一個ずつ進めていくのがいいのか、さっとまずは全体をやるのがよいのか悩ましい
    • 一番、困るのは挫折することなのでひとまずはざっとやってみるか……?