У меня есть две модели:Rail плагин acts_as_taggable_on: через
class Employee < ActiveRecord::Base
has_many :projects
end
class Project < ActiveRecord::Base
acts_as_taggable_on :skills, :roles
end
Я хотел бы найти сотрудник, используя тег, связанные с их проектами. Плагин geokit-rails поддерживает аналогичную концепцию, используя ее взаимосвязь «через».
В идеале, я бы смог:
- указать, какие теги (то есть навыки, роли), будут включены в условиях
- порядка сотрудники по общему числу проектов с соответствующими тегами
- иметь доступ к счету совпадений для каждого сотрудника с целью создания облака тегов
Любые мысли будут оценены.
Возможно, я ошибаюсь, но выполняю ee = Employee.all (: joins => {: projects =>: base_tags},: conditions => ['taggings.context =? И tags.name in (?) ',' skills ',' oracle ']) в IRB не возвращает ничего: никаких ошибок, никаких сотрудников, сообщений нет. Это должно соответствовать нескольким проектам. Я также соответствую случаю имени тега («навыки») и значения поиска («оракул»), если это имеет значение. Что мне не хватает? – craig
Этот запрос дает мне одну запись профиля для каждого соответствующего проекта (например, если два проекта для профиля соответствуют тегу, вы дважды повторяете этот профиль), а не уникальный список профилей, содержащих соответствующий проект. Однако это хорошая отправная точка. Мне нужен запрос EXISTS или IN. – craig