Ruby on rails 将ActiveRecord::关系转换为模型

Ruby on rails 将ActiveRecord::关系转换为模型,ruby-on-rails,Ruby On Rails,非常初级的问题。 我正在使用Rails 3的查询界面,如图所示: class User < ActiveRecord::Base def self.authenticate if Rails.env = 'development' self.where('username = ?', 'development_user') else self.where('username = ?', request.env['REMOTE_USER']) end end end

非常初级的问题。 我正在使用Rails 3的查询界面,如图所示:

class User < ActiveRecord::Base

def self.authenticate
 if Rails.env = 'development'
   self.where('username = ?', 'development_user')
 else
   self.where('username = ?', request.env['REMOTE_USER'])
 end
end

end
class用户
这将返回一个ActiveRecord::Relation对象,实际上我需要与查询相关的用户对象。如何将其转换为用户对象?

您需要使用
all
first
find
来“提交”查询

def self.authenticate
 user = Rails.env.development? ? "development_user" : request.env['REMOTE_USER']
 self.where('username = ?', user).first
end

注意:在Rails4中,似乎不推荐使用带有where(..)的“all”。当我在最新版本的Rails上尝试它时,我得到了以下警告:弃用警告:Relation#all已弃用。如果您想快速加载关系,可以调用#load(例如
Post.where(published:true).load
)。如果要从关系中获取记录数组,可以调用#to_a(例如
Post.where(published:true).to_a
)。(从irb_绑定处调用(irb):39)