我有一个班级:
class Technician < ActiveRecord::Base
scope :named, lambda {|name| where(["first_name LIKE ?", "%#{name}%"])}
end
在rails控制台中,当我执行以下查询时:
technician = Technician.named("john")
technician.class => ActiveRecord::Relation and not Technician
这很重要,因为当我尝试访问类属性时,我得到了一个no方法错误:
technician.id => no method error
我做错了什么?
答案 0 :(得分:4)
Arel返回ActiveRecord::Relation
,以便它可以将执行推迟到最后一刻并提供更好的可组合性。
Technician.named("john").first
代替Technician.named("john")
获取technician
。