为什么阿雷尔查询返回的ActiveRecord ::关系类而不是父类?
-
26-09-2019 - |
题
我有一个类:
class Technician < ActiveRecord::Base
scope :named, lambda {|name| where(["first_name LIKE ?", "%#{name}%"])}
end
在导轨控制台,当我做以下查询:
technician = Technician.named("john")
technician.class => ActiveRecord::Relation and not Technician
这很重要,因为我得到一个无方法错误,当我尝试访问类属性:
technician.id => no method error
我究竟做错了什么?
解决方案
阿雷尔回报ActiveRecord::Relation
,以便它可以推迟执行到最后一刻,并提供更好的组合性。
Technician.named("john").first
代替Technician.named("john")
得到technician
。
不隶属于 StackOverflow