2010-10-10 2 views
1

Я работаю на заселение своей базы данных с данными испытаний с использованием populate.rake:Случайных шутки в ските (ActiveRecord)

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: Названный идентификатор для ноля.

Как я могу заполнить кастинг случайными шуточками?

+1

Как? По одному. Я начну: Наследование - объектно-ориентированный способ стать богатым. – hpique

+0

Признаюсь ... Я просто заблудился в этом шуточном вопросе программиста, который появился после того, как я вошел в это название o =) – sscirrus

ответ

3

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

Или же вы делаете .order("rand()/random()") (в зависимости от вашего db) в своем репертуарном запросе и устанавливаете ограничение на запрос.

0

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

Смежные вопросы