1

私が持っているのは-私が思うに-簡単な質問です。これが私のコードです:

class Fruit < ActiveRecord::Base
end

class Apple < Fruit
end

class Kiwi < Fruit
end

すべてのSTIが正しく設定されており、テーブルには複数の種類のAppleレコードとKiwiレコードがあると想定します。ここから...

fruits = Fruit.find(:all)

...フルーツの配列からリンゴだけの配列を返すにはどうすればよいですか?

4

1 に答える 1

2

それらが単なる通常のオブジェクトである場合と同じ方法で行います。

fruits.select {|fruit| fruit.is_a?(Apple) }

STIはtypeフィールドを使用してサブモデルを追跡するため、次のこともできます。

fruits.select {|fruit| fruit.type == "Apple" }

データベースからリンゴだけを取得したい場合は、

Apple.find(:all)
于 2010-04-12T21:58:50.150 に答える