2011-07-05 8 views
0

(APIとして機能する)Rails 3アプリケーションを開発していて、 人が(iPhoneアプリケーション経由で)メールアドレスの束を送信して自動的に が一致するメンバー(電子メールによる)。Rails 3. Distinct query

これは現在(コードの下で)動作していますが、ユーザーが各電子メールの複数のコピーを送信した場合はdouble型に戻ります。

@users = @emails.find_all {|profile| User.find_by_email(profile['email']) } 

apiは、見つかった場合、ユーザーの一意のコピーを1つだけ返すようにします。 以下のコードを試しましたが、動作しません。

@users = @emails.find_all {|profile| User.select('DISTINCT email').where("LOWER (email) = ?", "%#{profile['email']}%") } 

上記のコードの最初の行を別の検索に変更するにはどうすればよいですか?

すべての入力をいただきありがとうございます!

答えて

0

私は何が必要であることをように思える

How do I get the unique elements from an array of hashes in Ruby?

a = [{:a => 1},{:a => 2}, {:a => 1}] 
a.inject([]) { |result,h| result << h unless result.include?(h); result } 
# this returns : [{:a=>1}, {:a=>2}] 

を見てみます!

+0

非常に興味深いです。どうすれば@users = @ emails.find_all {| profile | User.find_by_email(profile ['email'])}構文を使用するには?助けてください! –

+0

あなたのコードを電子メールの受信ハッシュを "クリーン"に使用しました。ありがとう! –

+0

喜んで私は手伝った! –