1

populatorを使用してテストデータを作成するためのrakeタスクを作成しました。現在の反復のインデックスを読み取り、モデルの属性の1つに設定する必要があります。誰かが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}は現在の反復のインデックス値である必要があります。

各ループsysntaxのrubyを想定して、ブロック変数にインデックスを追加しようとしCategory.populate 50 do |category, index|ましたが、機能しませんでした。

4

1 に答える 1

2

rubygem.org は、変更後に 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
...
于 2012-08-29T13:15:52.983 に答える