1

モデルで定義された関係に関連するwhere句を追加する場合に、オブジェクトを呼び出す特別な方法はありますか。

例として、私が画像を持っていて、その画像がbelongs_toまたはhas_many(ボートを揺さぶるものは何でも)カテゴリがあり、関連するカテゴリがないすべての画像を選択したい場合があります。

したがって、単純なbelongs_toの場合、次のように言うことができます。

Image.where('category_id is null')

しかし、関係がモデルで明示的に定義されているので、これを行うためのより良い方法はありますか?

4

2 に答える 2

0

whereと一緒に使うと不快に感じstring clauseますか? 使うたびにそんな気持ちになりますwhere

あなたもできる

Image.where(:category_id=>nil)

またはダイナミックファインダーメソッドを使用します

Image.find_all_by_category_id(nil)

または関連付けを介してロードする @images = Category.find(some_cat_id).images

(これは nil では機能しません)

それらはすべて多かれ少なかれ同じSQLを生成するはずだと思います。

于 2012-03-01T06:40:48.263 に答える
0

これを試して:

Image.find(:all, :conditions => 'category_id is null')
于 2012-03-01T07:13:59.240 に答える