У меня есть объект Tag (id, name) и объект Tagging (id, tag_id, type).Я хочу найти все теги, которые имеют имя, например "kevin", и для которых я могу найти иностранный объект Tagging с типом, установленным в "people" (тип может быть установлен в people или какой-либо другой материал для тегирования).
Я пытался выполнить сложный SQL-запрос в методе Rails Tag.find, но не пошел далеко, поэтому сейчас я пытаюсь использовать две строки, используя метод delete_if в Ruby:
people = Tag.find(:all, :conditions => ["name like ?", "Kevin%"])
people.delete_if { |p| Tagging.find(:all, :conditions => { :tag_id => p.id, :type => "people" }).empty? }
Это на самом деле работает, но должен быть более разумный способ сделать это непосредственно в базе данных, верно?
Спасибо за вашу помощь,
Кевин