2012-06-22 5 views
0

Я знаю, что название смехотворно длинное, но мне нужна помощь с Ruby on Rails и Sqlite3.Вытягивание 4 случайных идентификаторов (строк) из таблицы Sqlite и размещение данных на отдельной странице в Ruby on Rails?

Я изначально думал, что вы делаете что-то вроде 4.times {(0 .. ??). To_a.shuffle} будет печатать число от 0 до? (например, 20) четыре раза, но все, что было сделано для меня (в консоли rails), было напечатано число «4» один раз.

Любая идея о том, как я могу сделать это успешно в Ruby on Rails, обратившись к таблице базы данных «bullets» и используя встроенный ruby ​​(.erb)?

ответ

2

Вы можете тянуть 4 случайных строк из SQLite, используя запрос типа:

select * from bullets order by random() limit 4; 

Так синтаксис AREL:

Bullet.select(:id).order('random()').limit(4).collect { |b| b.id } 
=> [24, 6, 57, 37] 
+0

Большое вам спасибо. Я изменил: id и b.id на: content и b.content, чтобы отобразить то, что я должен был попросить, вместо того, чтобы не прояснять таблицы. Из любопытства есть способ сделать это с помощью одной случайной строки четыре разных раза, каждый из которых отображает что-то случайное в списке без двух «пуль», имеющих одинаковые данные? – Evan

0

Если вы ищете для массива случайных чисел от 0 до п, попробуйте:

4.times.collect {rand(20)} 

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

  • Нет связанных вопросов^_^