我有 - 我的想法 - 是一个简单的问题。这是我的代码:
class Fruit < ActiveRecord::Base
end
class Apple < Fruit
end
class Kiwi < Fruit
end
假设我正确设置了所有STI,并且表中有多种类型的Apple和Kiwi记录。从这里......
fruits = Fruit.find(:all)
...如何从fruits数组返回一个Apples数组?
答案 0 :(得分:2)
如果它们只是普通的物体,你就会这样做:
fruits.select {|fruit| fruit.is_a?(Apple) }
STI使用type
字段来跟踪子模型,因此您也可以
fruits.select {|fruit| fruit.type == "Apple" }
如果您只想从数据库中获取苹果,请执行
Apple.find(:all)