¿Cómo manejar n: n relaciones con los rieles?
-
18-09-2019 - |
Pregunta
Vamos a decir que tengo un Company
que tiene muchas Employees
y cada uno puede tener muchas Employee
Companies
.
Básicamente voy a tener:
class Employee < ActiveRecord::Base
has_and_belongs_to_many :companies
end
y
class Company < ActiveRecord::Base
has_and_belongs_to_many :employees
end
Pero entonces estoy confundido acerca de cómo podría conseguir cosas como:
- Todos los empleados de una empresa con el nombre empezando por "John"
- Todos los empleados de una empresa por su nombre para el primer, segundo correo electrónico.
¿Hay algo de magia que no sepa? El ejemplo es sólo aquí para la demo, no dude en hacer suposiciones o cambiarlo si le ayuda a explicar mejor.
Solución
Para obtener todos los empleados que comienzan con "John", que puede hacer (por supuesto hay muchas otras maneras de hacerlo, pero de todos modos):
some_company.employees.find(:all, :conditions => "name LIKE 'John%'")
Para pedidos de los empleados es aún más bonita:
class Company < ActiveRecord::Base
has_and_belongs_to_many :employees, :order => "name, email"
end
Hay mucho más que puede hacer con ActiveRecord. Le sugiero que trate de leer sobre http://guides.rubyonrails.org/ o ver http://railscasts.com/ para aprender más sobre la belleza de RoR =)
Espero que ayude!