Pregunta

Tengo dos modelos:

class Employee < ActiveRecord::Base
  has_many :projects
end

class Project < ActiveRecord::Base
  acts_as_taggable_on :skills, :roles
end

Me gustaría encontrar empleados que usan las etiquetas asociadas a sus proyectos. El Geokit-carriles de soportes plugin de un concepto similar, utilizando su ': a través de'. Relación

Lo ideal es que sería capaz de:

  • especificar qué etiquetas (es decir, habilidades, roles) estarían incluidos en las condiciones
  • Para los empleados por el número total de proyectos con el tag
  • poder acceder a la cuenta de igualación de etiqueta para cada empleado a los efectos de la construcción de una nube de etiquetas

sería apreciada Cualquier pensamiento.

¿Fue útil?

Solución

No estoy seguro de los actos-como-taggable-a tiene soporte para lo que busca directamente. Sin embargo, es posible que pueda conseguir lo que desea saber que el método acts_as_taggable_on añade dos relaciones has_many a su modelo Project. Por ejemplo, para encontrar a los empleados donde las habilidades del proyecto tiene algunas etiquetas puede escribir

Employee.all(:joins => {:projects => :taggings}, :conditions => ['taggings.context = ? and taggings.tag_id in (?)', 'skills', [4, 8, 15, 16, 23, 42])

Por supuesto que requiere conocer los identificadores de etiquetas que les interesa, en cambio si tiene los nombres de las etiquetas después

Employee.all(:joins => {:projects => :base_tags}, :conditions => ['taggings.context = ? and tags.name in (?)', 'skills', ['skill_a', 'skill_b', 'skill_c'])

podría ser capaz de expandir ese hacer que los diferentes cargos que usted está buscando también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top