1

当您想要添加与模型中已定义的关系相关的 where 子句时,是否有一种特殊的方式可以调用对象。

一个例子是我有一张图片,图片 belongs_to 或 has_many(不管你的船是什么)一个类别,我想选择所有没有任何关联类别的图片。

所以对于一个简单的belongs_to,我只能说:

Image.where('category_id is null')

但是有没有更好的方法来做到这一点,因为关系已经在模型中明确定义了?

4

2 回答 2

0

where与 a 一起使用您是否感到不舒服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 回答