次の作品をどのように作成しますか...
Beagle.beagles.where(:snount => "short")
...snoutメソッドIDが定義されているが、テーブルに列Beagleがない場合はどうなりますか?snoutbeagles
次の作品をどのように作成しますか...
Beagle.beagles.where(:snount => "short")
...snoutメソッドIDが定義されているが、テーブルに列Beagleがない場合はどうなりますか?snoutbeagles
スコープ (つまりオブジェクト) が必要な場合は、モデル インスタンス メソッドではなく 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必要なすべてのビーグル犬を含む配列が得られます