当您想要添加与模型中定义的关系相关的where子句时,是否有一种特殊的方法可以调用对象。
一个例子是我有一个图像,图像belongs_to或has_many(无论你的船是什么岩石)一个类别,我想选择所有没有任何相关类别的图像。
所以对于一个简单的belongs_to我可以说:
Image.where('category_id is null')
但是有没有更好的方法来实现这一点,因为关系已经在模型中明确定义了?
答案 0 :(得分:0)
使用where
使用string clause
时感到不舒服吗?每次使用where
时都会有这种感觉。
您也可以
Image.where(:category_id=>nil)
或使用动态查找器方法
Image.find_all_by_category_id(nil)
或通过关联加载
@images = Category.find(some_cat_id).images
(这个不适用于零)
我认为所有这些都应该生成或多或少相同的SQL。
答案 1 :(得分:0)
试试这个:
Image.find(:all, :conditions => 'category_id is null')