tengo 2 modelos:rieles HABTM y la búsqueda de registro con ninguna asociación
class User < ActiveRecord::Base
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
end
Quiero hacer un alcance (eso es importante - para la eficiencia y de capacidad de los alcances de la cadena) que devuelve Usuarios Eso no t pertenece al CUALQUIER Grupos. Después de muchos intentos, fallé al hacer un método en lugar de scope, lo que hace que collect
en User.all
sea feo y ... no correcto.
¿Algún ayuda?
Y tal vez para la 2da pregunta: Me las arreglé para hacer un ámbito que devuelve los usuarios que pertenecen a cualquiera de los grupos determinados (dado como una matriz de id).
scope :in_groups, lambda { |g|
{
:joins => :groups,
:conditions => {:groups => {:id => g}},
:select => "DISTINCT `users`.*" # kill duplicates
}
}
¿Puede ser mejor/más bonito? (usando Rails 3.0.9)
gracias, hizo el truco :) – schiza
¿Necesitarías DISTIN? CT en este caso donde no existiría una relación de unión para los resultados devueltos, y por lo tanto no se repetirían los usuarios? –
'DISTINCT' no es necesario. Agregué la nueva sintaxis requerida para Rails 4 y superior (creo). – slhck