如何构建任务'db:populate'

时间:2011-03-17 03:20:56

标签: ruby-on-rails ruby-on-rails-3 rake rake-task

  1 namespace :db do
  2   desc "Fill database with sample videos"
  3   task :populate => :environment do
  4     require 'faker'
  5     Rake::Task['db:reset'].invoke
  6     100.times do |n|
  7       headline = Faker::Lorem.sentence(3)
  8       video = Faker::Lorem.words(5)
  9       Video.create!(:headline => headline,
 10                   :video => video)
 11     end
 12   end
 13 end

我目前在lib / tasks / sample_data.rb

中有这个rake任务

运行rake db:populate时出现错误Don't know how to build task 'db:populate'。我该如何解决这个问题?

注意: 我是Rails / Ruby的新手。我正在使用Rails 3。

3 个答案:

答案 0 :(得分:24)

尝试将文件重命名为sample_data.rake。

通过将代码放在lib / tasks中名为testomatic.rake的文件中,我能够让您的示例正常工作(用p语句替换任务的内部)。

答案 1 :(得分:3)

我也有这个问题。在Finder中,文件名是sample_data.rake,但是在单击文件的“获取信息”后,我发现完整的文件名是sample_data.rake.erb - 确保这不是您的问题。

答案 2 :(得分:1)

Noobie在这里有同样的问题 - 我的分支命名与我合并分支时的想法不同,因此在我创建lib/tasks/sample_data.rake文件之前它又恢复为旧文件。

只需返回并使用正确的名称重新运行git merge并{Her} push就可以使用它。