Ruby on rails 如何返回子对象?

Ruby on rails 如何返回子对象?,ruby-on-rails,ruby,inheritance,single-table-inheritance,Ruby On Rails,Ruby,Inheritance,Single Table Inheritance,我有一个很简单的问题。这是我的密码: class Fruit < ActiveRecord::Base end class Apple < Fruit end class Kiwi < Fruit end …如何从水果数组返回一个苹果数组?如果苹果只是普通对象,则返回的方法与此相同: fruits.select {|fruit| fruit.is_a?(Apple) } STI使用type字段跟踪子模型,因此您也可以这样做 fruits.select {|fruit|

我有一个很简单的问题。这是我的密码:

class Fruit < ActiveRecord::Base
end

class Apple < Fruit
end

class Kiwi < Fruit
end

…如何从水果数组返回一个苹果数组?

如果苹果只是普通对象,则返回的方法与此相同:

fruits.select {|fruit| fruit.is_a?(Apple) }
STI使用
type
字段跟踪子模型,因此您也可以这样做

fruits.select {|fruit| fruit.type == "Apple" }
如果您只想从数据库中获取苹果,只需这样做

Apple.find(:all)
Apple.find(:all)