Sample users
這節要來建立一些樣本使用者。我們要增加一個 Faker gem,它可以用來建立半真實的姓名和 email。(通常只需要在 development 環境安裝,但在這個例子中,production 環境也要使用 Faker gem):
source 'https://rubygems.org'
gem 'rails', '4.2.2'
gem 'bcrypt', '3.1.7'
gem 'faker', '1.4.2'
.
.
.
執行 bundle
$ bundle install
接著,我們要增加一個 Rake task,在資料庫中建立樣本使用者(seed the database with sample users),Rails 使用一個標準文件完成這個任務:db/seeds.rb:
db/seeds.rb
User.create!(name: "Example User",
email: "[email protected]",
password: "foobar",
password_confirmation: "foobar")
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)
end
上述程式碼先建立了一個樣本使用者,然後又建立了 99 個。create! 方法就像 create 方法一樣,只不過前者會在遇到無效的使用者時拋出例外,後者會回傳 false。這樣做有利於除錯,避免出現無聲無息的錯誤。
接著我們就可以重設資料庫,然後調用 Rake task:
$ bundle exec rake db:migrate:reset
$ bundle exec rake db:seed
Seeding 資料庫的過程可能要一段時間,如果 reset 指令無法作用,得先退出 Rails server 再執行。
執行完 db:seed 之後,就會產生 100 個樣本使用者。最好重啟 Rails server:
