J'ai deux modèles:plug-in rail acts_as_taggable_on: par
class Employee < ActiveRecord::Base
has_many :projects
end
class Project < ActiveRecord::Base
acts_as_taggable_on :skills, :roles
end
Je voudrais trouver des employés en utilisant les balises associés à leurs projets. Le plugin geokit-rails supporte un concept similaire, utilisant sa relation ': through'.
Idéalement, je serais en mesure de:
- spécifier quelles balises (c.-à-compétences, les rôles) seraient inclus dans les conditions
- commande les employés par le nombre total de projets avec des étiquettes correspondant à
- être en mesure d'accéder au nombre d'étiquettes correspondantes pour chaque employé dans le but de construire un nuage d'étiquettes
Toutes les pensées seraient appréciées.
Peut-être que je fais une erreur, mais en exécutant ee = Employee.all (: jointures => {: projets =>: base_tags},: conditions => ['taggings.context =? Et tags.name dans (?) ',' skills ',' oracle ']) à la CISR ne renvoie rien: aucune erreur, aucun employé, aucun message. Cela devrait correspondre à quelques projets. Je suis également le cas du nom de tag ('skills') et de la valeur de recherche ('oracle'), si cela est pertinent. Qu'est-ce que je rate? – craig
Cette requête me donne un enregistrement de profil pour chaque projet correspondant (par exemple, si deux projets pour un profil correspondent à une balise, ce profil est répété deux fois), plutôt qu'une liste unique de profils contenant un projet correspondant. C'est un bon point de départ, cependant. Ce dont j'ai besoin est une requête EXISTS ou IN. – craig