你如何做以下工作......
Beagle.beagles.where(:snount => "short")
...在为snout
定义了Beagle
方法ID的情况下,snout
表中没有beagles
列?
答案 0 :(得分:2)
如果你需要一个范围(即一个ActiveRecord::Relation
对象),那么我认为你运气不好,因为where
处理数据库查询逻辑,而不是模型实例方法。但是,如果您只需要获得满足方法要求的结果数组,那么这将起作用:
Beagle.select { |b| b.snout == "short" }
请注意,这将从数据库中获取所有记录,然后从中选择您想要的记录。这是生成的SQL:
Beagle Load (0.1ms) SELECT "beagles".* FROM "beagles"
答案 1 :(得分:1)
也许试试这个
beagles = Beagle.find(:all)
beagles.each do |beagle|
if beagle.snount == "short"
beagles_selected << beagle
end
end
然后您将拥有一个beagles_selected
数组,其中包含您需要的所有小猎犬