Ruby on Rails 13章 ユーザごとのポスト一覧

Ruby on Rails 13章 ユーザごとのポスト一覧をやりました。

●ユーザごとのポスト一覧を作る
<概要>
・micropostのviewとcontrollerを作る。
・controllerは後日。モデルはもう作ってる。

・投稿一件当たりのパーシャルを作る。
→ページネーションを有効にする。
・今回はページネーションにオブジェクトを指定する。
(will_paginateだけでは不可。Usersコントローラで@userを持っていると省略できるらしい。)

コントローラ
@user.microposts.paginate( page: params[:page] )

ビュー
will_paginate @microposts

あるいは↓余計なインスタンス変数を切らずに

ルートエレメントである@userのままのほうがいいやも?
will_paginate @user.microposts

●ページネーションのような部分は…
おとなしく@postsのようにコントローラに持ったほうがいいかも。
@user.postsみたいになっていると、ページネーションする
will_paginate @user.postsや、対応するコントローラ側が面倒臭そう?

もう少しやってみて破綻しそうにならない限りインスタンスに置くのでよさげ。

●何日まえ?
rails cではhelper経由。
helper.time_ago_in_words(‘2019/08/01’)
>”29 days”

1.year.ago
=> Wed, 29 Aug 2018 14:10:07 UTC +00:00

helper.time_ago_in_words(1.year.ago)
>”about 1 year”

●適当にデータをぶち込む
users = User.order( :created_at ).take(6)
users.each { |user|
50.times do
user.microposts.create!(content: Faker::Lorem.sentence(5) )
end
}

●紐づきデータのあるyml

orange:
content: “I just ate an orange!”
created_at: <%= 10.minutes.ago %>
user: michael

michaelのpostにできる。

●assert_select

assert_select ‘h1>img.gravatar’

‘div#alert-danger’のようにidやnameも操作できるので、
jquery的なセレクタと同じかな。

コメントを残す

メールアドレスが公開されることはありません。