[Ror-es] obtener datos en una relación n a n
Rafa Cano
rafa.cano at gmail.com
Tue Sep 18 15:12:13 GMT 2007
Es exactamente lo que yo tengo planteado en mi aplicación, solo que yo no
sabá aun el detalle del :through. En mi caso tengo un atributo isadmin en la
tabla Pertenencias (en mi caso se llama distinto).
Yo por mi parte tengo la duda de que veo que el Rails te genera lo siguiente
(mas o menos) en los metodos list del controlador
def list
@usuarios, @pagina = paginate :usuarios , :page_size => 10
end
Yo me pregunto:
el simbolo :usuarios ¿de donde sale? ¿hay una lista predefinida o quizá
:usuarios es un simbolo con el sql para obtenerlo todo por defecto?
He visto que hay un paginate_by_sql. ¿se puede aplicar un filtro a una lista
predefinida o tengo que hacer una sentencia sql nueva?
O mejor. ¿como podría paginar una lista obtenida con find, find_by_* etc.?
un saludo
Rafa
On 9/18/07, Damian Janowski <damian.janowski at gmail.com> wrote:
>
> On 9/17/07, alarkspur <alarkspur at gmail.com> wrote:
> >
> > Hola, verán, ando un poco pez y liado con las relaciones "n a n" a la
> hora
> > de obtener los datos
> >
> > class Usuario < ActiveRecord::Base
> > has_many :pertenencias
> > has_many :grupos, :through => :pertenencias
> > end
> >
> >
> > class Pertenencia < ActiveRecord::Base
> > belongs_to :usuario
> > belongs_to :grupo
> > end
> >
> > class Grupo < ActiveRecord::Base
> > has_many :pertenencias
> > has_many :usuarios, :through => :pertenencias
> > end
> >
> > En este ejemplo tengo claro que si hago un find a Pertenencia
> > >> p = Pertenencia.find( :all )
> >
> > Puedo llegar a obtener los datos de usuarios (p.usuario) ó grupos (
> p.grupo)
> >
> > lo que no consigo es obtener los datos de la tabla Grupos pero haciendo
> el
> > find a usuarios (u = Usuarios.find(:all) para luego hacer algo como
> > u.pertenencias )
> > e usado las opciones include y join pero no hay manera.
> >
> > No se si me habré explicado bien.
>
> Creo que no te entiendo, podrías explicarlo de otra manera? Quizás
> "quiero traer todos los usuarios con sus respectivos grupos", en cuyo
> caso:
>
> Usuario.find(:all, :include => :grupos).each do |usuario|
> puts "Usuario: #{usuario} pertenece a los grupos
> #{usuario.grupos.to_sentence}"
> end
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20070918/f083e1ec/attachment.htm
More information about the Ror-es
mailing list