2013-10-11 3 views
0

Я не могу понять, почему этот код не заполняет мою базу данных sqlite. Я использую faker gem с рельсами 3.2 и пытаюсь сделать твиттер, как приложение. Может ли кто-нибудь найти проблему?Почему моя тестовая информация не загружается в базу данных 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 
Смежные вопросы