在Populator中获取当前索引值

时间:2012-08-27 11:18:54

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

我创建了一个rake任务来使用populator创建测试数据。我需要读取当前迭代的索引并在模型的一个属性中设置。谁能告诉我们如何在populate方法中读取当前索引值?

namespace :db do
  desc "Erase and fill database"
  task :populate => :environment do
    require 'populator'

    Category.delete_all

    Category.populate 50 do |category|
      category.name = Populator.words(1..3).titleize
      category.index = {CURRENT_INDEX}
    end
  end
end

其中{CURRENT_INDEX}应该是当前迭代的索引值。

我尝试在块变量Category.populate 50 do |category, index|中添加索引,假设每个循环sysntax都有ruby但是没有用。

1 个答案:

答案 0 :(得分:2)

看起来rubygem.org在changes之后没有更新gem。以下是我修复它的方法。

我直接将gem的源码指向master分支。

如此替换

gem 'populator'

gem 'populator', git: "https://github.com/ryanb/populator.git"
Gemfile

中的

在我的佣金任务中

...
Category.populate 50 do |category, index|
      category.name = Populator.words(1..3).titleize
      category.index = index
    end
...