2011-01-12 7 views
2

列名と時間を持つ[サイト]テーブルがあります。名前はユニークである必要はありません。たとえば、私は、 'hi.com、5'、 'hi.com、10'、 'bye.com、4'というエントリを持つことができます。 私はすべてのユニークなサイトをまとめて、プロットの目的で「hi.com、15」と「bye.com、4」を得るようにしたいと思います。どうやってやるの? (いくつかの参考のために、私はhttp://railscasts.com/episodes/223-chartsを見ていたが、私はレール類似の属性を持つ行の列値を合計する

def self.total_on(date) 
    where("date(purchased_at) = ?", date).sum(:total_price) 
end 

を動作するように)私のテーブルに変換(以下得ることができなかったり、私が本当に「where("date(purchased_at) = ?", date)」部分の構文を理解してください。

レールの初心者を助けるため

ありがとう!

答えて

3

のは、あなたが列名前時間とサイトと呼ばれるモデルを、持っているとしましょう

これは、その後

{"bye.com"=>4, "hi.com"=>15} 

のようなハッシュを発生します

sites = Site.sum(:time, :group => 'name') 

のようなものを言うだけで、あなたが欲しいものを行うには、ハッシュ

+0

ええああで、あなたがやりたいことができます私はちょうどそれも考え出した。ありがとう! – butterywombat

+0

は結果のハッシュから['bye.com'、 'hi.com']や[4,15]だけを簡単に取得できますか? – butterywombat

+1

はい。あなたはsites.keysとsites.valuesを呼び出すことができます –

関連する問題