Ruby on rails 将ActiveRecord::关系转换为模型
非常初级的问题。 我正在使用Rails 3的查询界面,如图所示: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
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)