2012-06-22 14 views
0

我知道這個標題很可笑,但我需要一些Ruby on Rails和Sqlite3的幫助。從Sqlite表中提取4個隨機ID(行)並將數據發佈到Ruby on Rails的單獨頁面上?

我原本以爲做4.times {(0 .. ??)to_a.shuffle}會打印一個介於0和??之間的數字。 (例如20次),但是它爲我所做的(在導軌控制檯中)是一次打印數字'4'。

有關如何通過訪問名爲「bullets」的數據庫表並使用嵌入式ruby(.erb)在Ruby on Rails中成功執行此操作的任何想法?

回答

2

您可以從sqlite的拉4個隨機行使用的查詢,如:

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到n,嘗試:

4.times.collect {rand(20)} 
相關問題