2011-02-19 43 views
2

我想在dato(日期)之後對數組進行排序。Rails數組幫助 - 如何在日期之後排列數組

我已經試過這一點沒有運氣:

<%= 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) %> 
+0

你是什麼意思'按日期排序數組'?你想按日期排序嗎?你想要什麼結果? 「賺取」屬性扮演什麼角色? – 2011-02-19 01:24:33

+0

我找到了我的答案<%= Reklamer.find(:all,:conditions => {:name =>'Orville'},:select =>'sum(earn)AS earn',:group =>'dato' ).map(&:earn)%> – 2011-02-19 01:30:10

+0

編輯:<%= Reklamer.find(:all,:conditions => {:name =>'Orville'},:order =>'dato ASC',:select => ':sum(earn)AS earn',:group =>'dato')。map(&:earn)%> – 2011-02-19 01:40:11

回答

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 
0

<%= Reklamer.find(:全部,:conditions => {:name =>'Orville'},:order =>'dato ASC',:select =>'sum(earn)AS earn',:group =>'dato')。map(&:賺取)%>