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

Respuestas a la pregunta(2)

Su respuesta a la pregunta