我有一个名为users的表,我正在做
array = User.where("username=?", username)
让用户获得特定的用户名。
我的小抱怨是这会返回一个数组,我必须做array[0]
但是应该总是只返回一个用户。
无论如何,在语法上指定我只期望1条记录,它不应该是返回的数组,只是用户?
答案 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})