La relación HABTM encuentra todos los registros, excluyendo algunos basados en asociación
He visto algunas de las publicaciones de SO similares relacionadas con esto, pero estoy luchando por entenderlo.
Tengo una relación habtm entre proyectos y usuarios. Estoy tratando de encontrar todos los Proyectos a los que no pertenece un usuario en particular pero no sé cómo.
He intentado este tipo de cosas:
Project.where('project_id != ?', user.id)
Pero obviamente también está mal.
Estoy usando rieles 3.2.x
Muchas de las respuestas relacionadas con los ámbitos de esta mención, pero no las he encontrado antes (todavía soy muy nuevo en Rails).
Acabo de encontraresta publicar con una respuesta sugiriendo:Project.where('id not in (?)', user.projects)
que parece funcionar, excepto cuandouser.projects
esta vacio. Lo estoy intentandoProject.where('id not in (?)', (d.projects.empty? ? '', d.projects))
como se sugiere en el hilo de comentarios de respuesta de JosephCastro pero me está dando un error de sintaxis en el segundod.projects
.
Editar
Fragmento de modelo de proyecto que se relaciona con los usuarios
class Project < ActiveRecord::Base
attr_accessible ...
has_and_belongs_to_many :users, :before_add => :validates_unique
y entonces
class User < ActiveRecord::Base
attr_accessible ...
has_and_belongs_to_many :projects