私は列のテーブルを持っていますname, duration, type, ref_id
。配列操作(特定のグループで1つの列を合計し、他の列を同じに保ちます)
私はしょっちゅうので、おそらくそれは名前の['bill', 'bob', 'bob', 'jill']
のCOLのように見える、と期間[3, 5, 6, 2]
、およびタイプの['man', boy', 'boy', 'girl']
、およびref_idため[1, 2, 2, 3]
ますテーブルを更新します。
私はこのようになりますハッシュまたは何かを得るように、私はすべての期間を追加できるように私のテーブルを操作したいと思います:
{'name' => ['bill', 'bob', 'jill'], 'duration' => [3, 11, 2], 'type' => ['man', 'boy', 'girl'], ref_id => [1, 2, 3]}
はどうすればこれを行うことができますか?
(詳細は - Log.sum(:duration, :group => 'name')
)現在、私はカラム名の代わりにキー(bill、bob、jill)として名前を与えています。 、2)しかし、私は残りのデータを失う...)
私は手動で各ログを通過し、名前/型/ ref_idを追加することができますそれがハッシュにない場合は、 。もしそうなら、それをする最善の方法は何ですか?
レール配列の操作/よく使用されるイディオムに関する良い情報がある場合は、それも素晴らしいでしょう!
まあまあ「名前」は本当にログ名ですが、私はそれがより簡単かもしれないと思ったので、ここに人々の名前を付けました。あなたが望むハッシュはどのように見えますか? (これは私にとって最も直感的な感覚を作りました)。私は実際にいくつかのグラフを作成するためにこのデータを取得しています(私が使用しているプラグインは、プロットするために値の配列を取り、x値のために別の配列をとる)ので、ハッシュの配列がうまくいくかどうかはわかりません。 (あなたはどういう意味ですか?)しかし、これをどうやってやってくれてありがとう、素晴らしい作品です! (私はどちらかの前にデータベースで作業していませんでした) – butterywombat
通常、 'find'メソッドが返すものからデータを変換する理由はありません。必要な部分だけを使用してください(通常はビュー内)。一連の名前が必要な場合は、 'durations.map {| d | d.name} 'などとなります。 –