1

rails/active record を使用する場合、オブジェクトごとに 2 つまたは 3 つの属性をクエリ/収集する最良の方法は何ですか?

例として、ユーザー テーブルにクエリを実行し、特定のタイプのユーザーのユーザー ID と電子メールをすべて取得する場合があります。

ユーザーIDのみを取得したい場合は、

User.where(:condition => nil).collect {|u| u.id}

しかし、IDとメールが必要な場合はどうすればよいですか?

4

1 に答える 1

1

idandemailを配列に集めるだけです。

User.where(:condition => nil).collect {|u| [u.id, u.email]}

または、次の形式のハッシュが必要な場合{:id => :email}:

User.where(:conditions => nil).inject({}) {|m, u| m[u.id] = u.email; m} 

を使用して、必要なフィールドのみを取得するようにデータベースに指示すると、これを少し効率的にすることができますselect

User.where(:conditions => nil).select([:id, :email]).
     collect {|u| [u.id, u.email]}
于 2013-04-12T15:55:39.003 に答える