###マイクロポストのサンプル
####サンプルデータにマイクロポストを追加する
db/seeds.rb
# メインのサンプルユーザーを1人作成する
User.create!(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar",
admin: true,
activated: true,
activated_at: Time.zone.now)
# create!は基本的にcreateメソッドと同じものですが、
# ユーザーが無効な場合にfalseを返すのではなく例外を発生させる
# admin:trueにして管理者にする
# サーバーのタイムゾーンに応じたタイムスタンプ
# 追加のユーザーをまとめて生成する
# メイン以外のユーザー99人を作成
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
# 数ごとにメアドが変更される
password = "password"
# パスワードは変わらない
User.create!(name: name,
email: email,
password: password,
password_confirmation: password,
activated: true,
activated_at: Time.zone.now)
# 許可された属性リストにadminが含まれていない
# 任意のユーザーが自分自身にアプリケーションの
# 管理者権限を与えることを防止
end
# ユーザーの一部を対象にマイクロポストを生成する
users = User.order(:created_at).take(6)
# takeメソッドを使って最初の6人だけに追加します。
# テストユーザーの最初の6人
50.times do
# 50回
# 50回分まとめない
content = Faker::Lorem.sentence(word_count: 5)
users.each { |user| user.microposts.create!(content: content) }
end
####マイクロポスト用のCSS
app/assets/stylesheets/custom.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.image {
margin-top: 10px;
input {
border: 0;
}
}
###演習
(1..10).to_a.take(6)というコードの実行結果を推測できますか? 推測した値が合っているかどうか、実際にコンソールを使って確認してみましょう。
>> (1..10).to_a.take(6)
=> [1, 2, 3, 4, 5, 6]
>> (1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#to_aメソッドとは、ハッシュ、範囲オブジェクトなどを配列に変換するメソッド
>> (1..10).take(6)
=> [1, 2, 3, 4, 5, 6]
>> (1..10).class
=> Range
>> (1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>> (1..10).to_a.class
=> Array
先ほどの演習にあったto_aメソッドの部分は本当に必要でしょうか? 確かめてみてください
今のところ不要
Fakerはlorem ipsum以外にも、非常に多種多様の事例に対応しています。Fakerのドキュメント(英語)を眺めながら画面に出力する方法を学び、実際に架空の大学名やHipster IpsumやChuck Norris facts(参考: チャック・ノリスの真実)を画面に出力してみましょう。
ちょっとわからない。