2011-08-05 61 views
1

我有一個名爲用戶表,我做Ruby on Rails:Class.where(...)但只返回1條記錄?

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

,以獲取特定用戶名的用戶。

我的小小抱怨是,這返回一個數組,我必須做array[0],但應該總是隻有1個用戶返回。

無論如何,語法上指定我只期望1條記錄,它不應該是一個數組返回,只是用戶?

回答

7

你可以把它限制在一個結果:

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

然而,你可能只是想使用動態find_by_方法:

User.find_by_username(username) 
1

您也可以使用限制在您需要的情況下,獲得更多的結果,但限制。

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

感謝,我還需要知道如何以及訂購! hehehe –

+0

不錯!很高興幫助你。 –

0

這裏是另一個語法找到的第一個記錄

array = User.find(:first,:conditions => {:username => username})