rails/active record を使用する場合、オブジェクトごとに 2 つまたは 3 つの属性をクエリ/収集する最良の方法は何ですか?
例として、ユーザー テーブルにクエリを実行し、特定のタイプのユーザーのユーザー ID と電子メールをすべて取得する場合があります。
ユーザーIDのみを取得したい場合は、
User.where(:condition => nil).collect {|u| u.id}
しかし、IDとメールが必要な場合はどうすればよいですか?
rails/active record を使用する場合、オブジェクトごとに 2 つまたは 3 つの属性をクエリ/収集する最良の方法は何ですか?
例として、ユーザー テーブルにクエリを実行し、特定のタイプのユーザーのユーザー ID と電子メールをすべて取得する場合があります。
ユーザーIDのみを取得したい場合は、
User.where(:condition => nil).collect {|u| u.id}
しかし、IDとメールが必要な場合はどうすればよいですか?
id
andemail
を配列に集めるだけです。
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]}