如何随机化视图中的数据输出

时间:2014-11-26 20:32:48

标签: ruby-on-rails postgresql activerecord

如何在视图中随机化数据?以下代码目前按照输入数据库的顺序显示膳食。

e.g。

    <% @meals.each do |r| %>
        <div class = "col-md-4">
          <div class = "rest-box">
              <center><%= image_tag r.meal_photo.url(:medium) %></center>
          </div>
        </div>
    <% end %>

2 个答案:

答案 0 :(得分:1)

在视图级别,您可以使用:

 <% @meals.shuffle.each do |r| %>
    <div class = "col-md-4">
      <div class = "rest-box">
          <center><%= image_tag r.meal_photo.url(:medium) %></center>
      </div>
    </div>
<% end %>

但最好是在控制器中的模型上进行。

@meals = Meal.order('RANDOM()')  # example

顺便说一句,如果你需要它,你可以将它作为模型文件中的默认范围:

default_scope -> {order(' RANDOM()' )}

因此,每当您查询许多结果时,这将始终随机返回数据。

答案 1 :(得分:0)

ORDER BY random()

或更复杂的方法: