10
  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。

4

3 回答 3

24

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

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

于 2011-03-17T04:06:48.010 回答
3

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

于 2011-04-13T19:14:52.373 回答
1

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

git merge只需返回并使用正确的名称重新运行并push输入 Heroku 即可使其正常工作。

于 2013-10-27T21:49:21.543 回答