Menú principal

Una forma de usar INNER JOIN en Rails

27 Dec
Published by omar.reyes in

Tags 

Rails

Usando los nombres de la asociaciones (has_many, belongs_to) de los modelos (Active Record) resulta bastante sencillo realizar un INNER JOIN usando el método joins, veamos un pequeño ejemplo:

Consideremos los siguientes modelos.


class Grupo has_many :alumnos
end

class Alumno belongs_to :grupo
end

Bien, para hacer un JOIN de estos dos modelos (tablas) basta con lo siguiente:


Grupo.joins(:alumnos)

Donde alumnos es el nombre de la asociacion has_many en el modelo Grupo, esto se traduce en la siguiente instrucción SQL:


SELECT grupos.* FROM grupos INNER JOIN alumnos ON alumnos.grupo_id = grupo.id

El ejemplo es muy simple, pero muestra la facilidad con la que se usa el INNER JOIN, por su puesto exiten más formas, y es importante resaltar que esta forma solo funciona para INNER JOIN

Fuente: http://guides.rubyonrails.org/active_record_querying.html#joining-tables