Rails数组帮助 - 如何在日期之后对数组进行排序

时间:2011-02-19 01:12:13

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试在dato(date)之后对数组进行排序。

我没有运气试过这个:

<%= Reklamer.where(:name => 'Orville', :order => 'dato ASC').all.map(&:earn) %>

而且:

<%= Reklamer.where(:name => 'Orville').all.map(&:earn).order('dato ASC') %>

<%= Reklamer.where(:name => 'Orville').order('dato ASC').all.map(&:earn) %>

<%= Reklamer.where(:name => 'Orville').all.order('dato ASC').map(&:earn) %>

2 个答案:

答案 0 :(得分:1)

试试这个:

<%= Reklamer.where(:name => 'Orville').order('dato ASC').map(&:earn).join(', ') %>

虽然一般情况下,我建议不要将所有数据加载代码放入您的视图中。相反,将它推送到您的模型和控制器。例如,您可以在控制器中执行此操作:

def show
  @earnings = Reklamer.where(:name => 'Orville').order('dato ASC').map(&:earn)
end

或者,更好的是,将一些更复杂的内容推送到您的模型中:

class Reklamer
  def self.earnings
    where(:name => 'Orville').order('dato ASC').map(&:earn)
  end
end

答案 1 :(得分:0)

&lt;%= Reklamer.find(:all,:conditions =&gt; {:name =&gt;'Orville'} ,: order =&gt;'dato ASC',: select =&gt;'sum(earn) AS赚',:group =&gt;'dato')。map(&amp;:earn)%&gt;