がデータベースに存在するが、2のIDを持つアイテムがない場合、次の行:すべてのレコードが見つからない場合、ActiveRecord :: RecordNotFoundを生成する方法は? 1のIDとその項目を考える
Item.find([1, 2])
はActiveRecord::RecordNotFound
エラーが発生します。ただし、次の行ではないでしょう:
Item.where(id: [1, 2])
代わりに、それはちょうど1のIDを持つアイテムを返します。私は一意の値を照会していた場合where
にfind
の行動を強制する方法はあります。
id
とは別に、uid
文字列属性も持つモデルFoo
があります。各foo
には一意のuid
値があります。だからuids
の配列を与えられた場合、uid
の値のいずれかがfoo
が存在しない場合、すべてfoos
をフェッチするか、エラーを発生させたいと思います。
P.S.私はraise ActiveRecord::RecordNotFound unless query_result.count == uids.count
のようなことをすることができましたが、もっと良いアプローチがあるかどうかを知りたいと思います。
ありがとう、@ alok-swain、ソースでも場所を見つけようとしましたが、実行チェーンを追跡できませんでした。これは本当に私を助けました。 –