2016-07-30 19 views
0

user_id、:player_id、:amount属性を下のコードのハッシュで一緒に表示する方法を知ることは可能でしょうか?rails select文からすべての属性を表示するにはどうすればよいですか?

現在、配列は、player_idをキーとして返し、{1695 => 100、1714 => 200}の値を返しますが、{1695 => {:user_id、100}のようなものが必要ですか?

次のようにコントローラのコードは次のとおりです。

@duplicates = Bid.select(:player_id, :user_id, :amount).group(:player_id).having("count(*) > 1").maximum(:amount) 

ビューでコード:

<div class="col-sm-3" style="background-color:white;"> 
     <%= @duplicates %><br> 
    </div> 
+0

ここでは、「11695 => 100」という金額とuser_idは何ですか? '{1695 => {:user_id、100}'は有効なRuby構文ではありません。 :)それを正しく教えてください。 –

+0

量は100で、プレーヤーIDは1695です:)この例の場合、player idのキーに{:user_id、:amount}の値を返すようにしたいので、:player_idキーに関連付けられた2つの値があります:)これは、選択ステートメントを介してルビーのハッシュ構造で達成することは可能ですか?それとも良い方法がありますか? – Jase

+0

これで正しい構文は、 '{1695 => [:user_id、100]' .. '@ duplicates.map! {| rec | {rec。 rec.user_id、rec.amount]} ' –

答えて

0

私たちはのコメントで会話から思いついた答えを追加するつもりです主な記事:

@duplicates = Bid. 
    select("player_id, user_id,MAX(amount)"). 
    group(:player_id). 
    having("count(*) > 1") 

今すぐあなたのユースケースごとに結果を飾る:

@duplicates.map! do |rec| 
    { rec. player_id => [ rec.user_id, rec.amount ] } 
end 
関連する問題