Ruby on Rails:Class.where(...)但只返回1条记录?

时间:2011-08-05 03:30:54

标签: ruby-on-rails

我有一个名为users的表,我正在做

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

让用户获得特定的用户名。

我的小抱怨是这会返回一个数组,我必须做array[0]但是应该总是只返回一个用户。

无论如何,在语法上指定我只期望1条记录,它不应该是返回的数组,只是用户?

3 个答案:

答案 0 :(得分:7)

您可以将其限制为一个结果:

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

但是,您可能只想使用动态find_by_方法:

User.find_by_username(username)

答案 1 :(得分:1)

此外,您可以在想要获得更多结果的情况下使用限制,但限制。

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

答案 2 :(得分:0)

这是另一种查找第一条记录的语法

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