2013-10-11 55 views
0

我不明白爲什麼這段代碼沒有填充我的sqlite數據庫。我正在使用rails 3.2的faker gem,並試圖製作一個類似於應用程序的twitter。任何人都可以找到問題嗎?爲什麼我的示例數據沒有上傳到sqlite數據庫?

namespace :db do 
     desc "Fill database with sample data" 
     task populate: :environment do 
     def make_users 
      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}@example.org" 
       password = "password" 
       User.create!(name: name, 
          email: email, 
          password: password, 
          password_confirmation: password) 
      end 
     end 

     def make_microposts 
      users = User.all(limit: 6) 
      50.times do 
       content = Faker::Lorem.sentence(5) 
       users.each { |user| user.microposts.create!(content: content) } 
      end 
     end 

     def make_relationships 
      users = User.all 
      user = users.first 
      followed_users = users[2..50] 
      followers  = users[3..40] 
      followed_users.each { |followed| user.follow!(followed) } 
      followers.each  { |follower| follower.follow!(user) } 
     end 

     end 
    end 

回答

0

我真的想出了答案。這裏是正確的代碼:

namespace :db do 
     desc "Fill database with sample data" 
     task populate: :environment do 
     make_users 
     make_microposts 
     make_relationships 
     end 
    end 

    def make_users 
     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 
    end 

    def make_microposts 
     users = User.all(limit: 6) 
     50.times do 
     content = Faker::Lorem.sentence(5) 
     users.each { |user| user.microposts.create!(content: content) } 
     end 
    end 

    def make_relationships 
     users = User.all 
     user = users.first 
     followed_users = users[2..50] 
     followers  = users[3..40] 
     followed_users.each { |followed| user.follow!(followed) } 
     followers.each  { |follower| follower.follow!(user) } 
    end 
相關問題