Случайные шутки в ските (activerecord) - PullRequest
1 голос
/ 10 октября 2010

Я работаю над заполнением своей базы данных тестовыми данными с помощью populate.rake:

Repertoire.includes(:jokes).each do |r|
  @jokes = r.jokes
  Skit.populate 8..12 do |skit|
    skit.joke_id = @jokes[rand(@jokes.count)].id
  end
end

Это дает мне RuntimeError: Called id для nil.

Как мне заполнитьпародировать со случайными шутками?

Ответы [ 2 ]

3 голосов
/ 10 октября 2010

sort_by {rand} должен отсортировать ваш массив анекдотов.

Или, также есть выполнение .order("rand()/random()") (в зависимости от вашей базы данных) в вашем запросе к репертуару и наложение ограничения на запрос.

0 голосов
/ 10 октября 2010

Не уверен, решит ли это вашу проблему, но в Ruby есть метод rand для массивов, поэтому вы должны иметь возможность вызывать @jokes.rand.id вместо этого. Похоже, это упростит вещи и, возможно, даже исправит вашу ошибку.

...