2011-08-05 10 views
1

私は、ユーザーという名前のテーブルを持って、私は、特定のユーザ名のユーザーを取得するためにRuby on Rails:Class.where(...)でも1レコードしか返しませんか?

array = User.where("username=?", username) 

をやっています。

私の小さな不満は、これが配列を返すことであり、私はarray[0]をしなければならないが、常に1人のユーザーが返されるべきである。

私はちょうど1つのレコードしか期待できないと言っていますが、ユーザーだけが返す配列ではありませんか?

答えて

7

あなたは1つの結果にそれを制限することができます。

User.find_by_username(username) 
1

また、あなたが欲しい場合には制限を使用することができます。

User.where("username = ?", username).first 

は、しかし、あなただけのダイナミックfind_by_メソッドを使用する場合がありますより多くの結果を得ることができますが、制限します。ここで

User.where("username = ?", username).order('created_at DESC').limit(5) 
+0

感謝を、見つけるために別の構文です! hehehe –

+0

いいね!あなたを助けてうれしい。 –

0

は、最初のレコードに私も同様で注文する方法を知るために必要な

array = User.find(:first,:conditions => {:username => username}) 
関連する問題