1

我需要一些关于 Ruby on Rails 和 Sqlite3 的帮助。

这是我做了四次:

<%= Bullet.select(:content).order('random()').limit(1).collect { |b| b.content } %>

但是,它不会执行四个不同的随机“子弹”,而是从我拥有的子弹列表中随机选择四个相同的子弹。

我也试过 select * from bullets order by random() limit 4; 在 sqlite3 中(使用 sqliteman 程序)并且还完成了 select * from bullets order by random() limit 1;四次。

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

我是一个新手,所以我需要知道在哪里放什么。(例如,我正在显示的项目符号内容是show.html.erb,它的控制器是students_controller.rb | 我也在使用sqliteman,所以我需要知道我是否对它做任何事情。)

4

1 回答 1

1

现在试试这个:

<% random_bullets = Bullet.all %>
<ul>
  <% random_bullets.shuffle.first(4).each do |r| %>
    <li><%= r.content %></li>
  <% end %>
</ul>

编辑

这种新方法将获取random_bullets数组,对其进行洗牌并获得前 4 个子弹。
这样一来,子弹总是不同的。

于 2012-06-26T00:24:54.837 回答