2013-10-11 6 views
0

이 코드가 내 sqlite 데이터베이스를 채우지 않는 이유를 알 수 없습니다. 나는 레일 3.2와 faker 보석을 사용하고 응용 프로그램과 같은 트위터를 만들려고 노력하고 있습니다. 누구든지 문제를 찾을 수 있습니까?샘플 데이터가 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