Селекторы, где есть отношения - PullRequest
1 голос
/ 01 марта 2012

Существует ли особый способ вызова объекта, когда вы хотите добавить предложение where, которое относится к отношению, которое было определено в модели.

Примером может быть то, что у меня есть изображение, изображение принадлежит к категории, которая принадлежит вашей категории или есть (что бы ни качало вашу лодку), и я хочу выбрать все изображения, которые не имеют связанных категорий.

Таким образом, для простой принадлежности - я мог бы просто сказать:

Image.where('category_id is null')

Но есть ли лучший способ сделать это, так как отношения были явно определены в модели?

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Попробуйте это:

Image.find(:all, :conditions => 'category_id is null')
0 голосов
/ 01 марта 2012

Вы чувствуете себя некомфортно, используя 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.

...