我正在使用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代码不太满意。有谁知道问题是什么?
答案 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