Ruby on rails Rails阵列帮助-如何在日期后订购阵列

Ruby on rails Rails阵列帮助-如何在日期后订购阵列,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图在dato(日期)之后对数组进行排序 我试过这个,但运气不好: <%= Reklamer.where(:name => 'Orville', :order => 'dato ASC').all.map(&:earn) %> 'Orville',:order=>'dato ASC').all.map(&:earn)%> 这是: <%= Reklamer.where(:name => 'Orville').all.map(&:earn).

我试图在dato(日期)之后对数组进行排序

我试过这个,但运气不好:

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

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

'Orville').order('dato ASC').all.map(&:earn)%>
以及:

“Orville”).all.order('dato ASC').map(&:earn)%>
试试这个:

<%= Reklamer.where(:name => 'Orville').order('dato ASC').map(&:earn).join(', ') %>
或者,更好的是,将一些更复杂的东西推到您的模型中:

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

{:name=>'Orville'},:order=>'dato ASC',:select=>'sum(earn)AS earn',:group=>'dato')。map(&:earn)%>

您所说的“在日期之后对数组排序”是什么意思?你想按日期排序吗?你希望你的结果是什么?“earn”属性扮演什么角色?我找到了我的答案{:name=>'Orville'},:select=>'sum(earn)AS earn',:group=>'dato')。map(&:earn)%>编辑:{:name=>'Orville'},:order=>'dato ASC',:select=>'sum(earn)AS earn',:group=>'dato')。map(&:earn)%>我找到了我的答案{:name=>'Orville',:select=>'sum(earn)AS earn',:group=>'dato').map(&:earn)%%>是否有一种在模型中设置代码的好方法?我有一些不同的名字,我只是在一页上使用代码。这不是很混乱吗?听起来你可能正在使用Rails 2。对吗?如果是这样的话,我建议尽可能升级到Rails 3。您对Reklamer.find的调用是Rails 2风格的。我建议您开始使用Rails 3 API,您在原始文章的示例中实际使用了该API:
<%= 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