ぞえの技術めも

Ruby on Rails勉強中

【150日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストのサンプルデータを追加する

Ruby on Railsチュートリアル(第3版)

今日は「11.2.2 マイクロポストのサンプル」から。

11.2.2 マイクロポストのサンプル

すべてのユーザーにマイクロポストを追加しようとすると時間が掛かり過ぎるので、takeメソッドを使って最初の6人だけに追加します。
(中略)
この6人については、1ページの表示限界数 (30) を越えさせるために、それぞれ50個分のマイクロポストを追加するようにしています。

ほほぅ…。適当な任意のユーザー1人だけ、とかじゃないのか。
そっか、自動生成するんだもんね。。。何人でも何個でもできるか。

“テストデータ"って考えると手作業で適当なデータ入れる手順を思い浮かべてしまうんだけど、自動生成できるんだもんねぇ。 そう、Ruby on Railsならね。(

というわけでサンプルデータにマイクロポスト追加しましょう。

db/seeds.rb

users = User.order(:created_at).take(6)
50.times do
  content = Faker::Lorem.sentence(5)
  users.each { |user| user.microposts.create!(content: content) }
end

ここで、いつものように開発環境用のデータベースで再度サンプルデータを生成します。

$ bundle exec rake db:migrate:reset
$ bundle exec rake db:seed

よし、サンプルデータを再生成したので実際の表示を見てみよう。

サーバーを起動して

$ rails server -b $IP -p $PORT

example@railstutorial.orgのアカウントでログイン。

プロフィールページにマイクロポストが表示されました!

f:id:kt_zoe:20170612123428p:plain

図11.6のページにはマイクロポスト固有のスタイルが与えられていないので、リスト11.25を追加して、結果のページを見てみましょう。

レイアウトひどいなと思ってました。スタイル追加しましょう。

app/assets/stylesheets/custom.css.scss

  :
/* microposts */

.microposts {
  list-style: none;
  padding: 0;
  li {
    padding: 10px 0;
    border-top: 1px solid #e8e8e8;
  }
  .user {
    margin-top: 5em;
    padding-top: 0;
  }
  .content {
    display: block;
    margin-left: 60px;
    img {
      display: block;
      padding: 5px 0;
    }
  }
  .timestamp {
    color: $gray-light;
    display: block;
    margin-left: 60px;
  }
  .gravatar {
    float: left;
    margin-right: 10px;
    margin-top: 5px;
  }
}

aside {
  textarea {
    height: 100px;
    margin-bottom: 5px;
  }
}

span.picture {
  margin-top: 10px;
  input {
    border: 0;
  }
}

きれいになったー!

f:id:kt_zoe:20170612123515p:plain

他の任意のユーザーもマイクロポスト表示されてます。

f:id:kt_zoe:20170612123535p:plain

ページャーも問題なし。

f:id:kt_zoe:20170612123558p:plain

今日の学習時間は【25分】

次は「11.2.3 プロフィール画面におけるマイクロポストのテスト」から。