0

我知道标题长得离谱,但我需要一些关于 Ruby on Rails 和 Sqlite3 的帮助。

我原本以为做类似 4.times { (0..??).to_a.shuffle } 会打印一个介于 0 和 ?? (例如 20)四次,但它为我所做的一切(在 Rails 控制台中)只是打印数字“4”一次。

关于如何通过访问名为“bullets”的数据库表并使用嵌入式 ruby​​ (.erb) 在 Ruby on Rails 中成功完成此操作的任何想法?

4

2 回答 2

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] 
于 2012-06-22T23:01:37.467 回答
0

如果您正在寻找从 0 到 n 的随机数数组,请尝试:

4.times.collect {rand(20)}
于 2012-06-22T23:00:46.010 回答