如何在rails上的ruby中对for-loop的结果进行排序

时间:2010-04-19 22:17:11

标签: ruby-on-rails

我有一个循环如下:

<% for email in @campaign.emails%>
    <strong>Email: </strong><%=h email.title %> sent after <%=h email.days %> days </br>
<% end %>

但实际上我希望它在显示到屏幕时按email.days值排序。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以在将电子邮件显示为:

之前对其进行排序
<%
    sortedEmails = @campaign.emails.sort { |a, b| a.days <=> b.days }
    for email in sortedEmails
%>
...
<% end %>

答案 1 :(得分:0)

如果您使用的是ActiveRecord,则可以执行类似

的操作

<% for email in @campaign.emails.all(:order => "days") %>