在Hartl教程10.20中,不能“rake db:”

时间:2013-09-27 00:38:15

标签: ruby-on-rails ruby railstutorial.org

我正在使用Mike Hartl的Rails教程,尝试执行以下命令:

$ bundle exec rake db:reset
$ bundle exec rake db:populate
$ bundle exec rake test:prepare

我收到了错误:

sample_app/lib/tasks/sample_data.rake:25: syntax error, unexpected end-of-input, expecting keyword_end 

我认为我混淆了我将end放在我的代码上的lib / tasks / sample_data.rake文件中。

以下是代码:

namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    admin = User.create!(name: "Example User",
                         email: "example@railstutorial.org",
                         password: "foobar",
                         password_confirmation: "foobar",
                         admin: true)
    users = User.all(limit: 6)
    50.times do
      content = Faker::Lorem.sentence(5)
      users.each { |user| user.microposts.create!(content: content) }

    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
end

我有点混淆,我对Ruby代码不太满意。有谁知道问题是什么?

2 个答案:

答案 0 :(得分:1)

有一个"结束"在书中给出的例子中缺少。它需要两个"结束"命令,而不是像已经发布的命令!耙子需要很长时间,因此需要等待一段时间。

答案 1 :(得分:0)

50.times do块没有end

应该是:

50.times do
  content = Faker::Lorem.sentence(5)
  users.each { |user| user.microposts.create!(content: content) }
end