次の作品をどのように作成しますか...
Beagle.beagles.where(:snount => "short")
...snout
メソッドIDが定義されているが、テーブルに列Beagle
がない場合はどうなりますか?snout
beagles
次の作品をどのように作成しますか...
Beagle.beagles.where(:snount => "short")
...snout
メソッドIDが定義されているが、テーブルに列Beagle
がない場合はどうなりますか?snout
beagles
スコープ (つまりオブジェクト) が必要な場合は、モデル インスタンス メソッドではなく DB クエリ ロジックを扱うActiveRecord::Relation
ため、運が悪いと思います。where
ただし、メソッドの要件を満たす結果の配列を取得する必要があるだけの場合は、次のように機能します。
Beagle.select { |b| b.snout == "short" }
これにより、DB からすべてのレコードが取得され、必要なレコードが選択されることに注意してください。生成された SQL は次のとおりです。
Beagle Load (0.1ms) SELECT "beagles".* FROM "beagles"
たぶんこれを試してください
beagles = Beagle.find(:all)
beagles.each do |beagle|
if beagle.snount == "short"
beagles_selected << beagle
end
end
beagles_selected
必要なすべてのビーグル犬を含む配列が得られます