Sample microposts
現在要來增加 sample microposts,如果要為所有使用者增加太花時間,所以我們先為前六名使用者增加就好,使用 take 方法:
User.order(:created_at).take(6)
我們計畫為這六名使用者增加各 50 篇 microposts(數量要多於 30 才會分頁)。為了產生 sample content,我們會使用 Faker gem 提供的 Lorem.sentence 方法。
Faker::Lorem.sentence會回傳 lorem ipsum 文字
以下是增加 sample microposts 的程式碼:
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
然後像之前一樣,重設資料庫,把 seed data 寫進開發資料庫:
$ bundle exec rake db:migrate:reset
$ bundle exec rake db:seed
記得重啟 server。
現在就可以看到初步完成的畫面會長這樣:

接著增加 CSS:(為求方便,以下包含本章會使用到的所有 CSS)
app/assets/stylesheets/custom.css.sass
.
.
.
/* 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
這是第一個使用者的頁面:

這是第二個使用者的頁面:

然後是第一個使用者的第二頁:

每篇 micropost 都會顯示發布時間,例如「Posted 1 minute ago.」,這就是 time_ago_in_words 方法實現的結果,過一段時間再重載頁面,時間會自動更新。