Wie n verwalten: n-Beziehungen mit Rails?
-
18-09-2019 - |
Frage
Lassen Sie uns sagen, dass ich ein Company
haben, dass viele Employees
und jede Employee
hat viele Companies
haben.
Im Grunde muss ich:
class Employee < ActiveRecord::Base
has_and_belongs_to_many :companies
end
und
class Company < ActiveRecord::Base
has_and_belongs_to_many :employees
end
Aber dann bin ich verwirrt darüber, wie ich die Dinge könnten wie:
- Alle Mitarbeiter eines Unternehmens mit dem Namen von „John“ Start
- Alle Mitarbeiter eines Unternehmens, um nach Name zuerst, E-Mail Sekunde.
Gibt es eine Magie, die ich nicht kenne? Das Beispiel ist nur hier für die Demo, Annahmen zu treffen, fühlen sich frei, oder es zu ändern, wenn es hilft Ihnen, besser zu erklären.
Lösung
Für alle Mitarbeiter mit „John“ beginnen bekommen, können Sie (natürlich gibt es viele andere Möglichkeiten, es zu tun, aber trotzdem):
some_company.employees.find(:all, :conditions => "name LIKE 'John%'")
Für die Bestellung der Mitarbeiter ist es noch schöner:
class Company < ActiveRecord::Base
has_and_belongs_to_many :employees, :order => "name, email"
end
Es gibt eine ganze Menge mehr Sie mit Active tun können. Ich schlage vor, dass Sie versuchen, Lesen auf http://guides.rubyonrails.org/ oder beobachten http://railscasts.com/ mehr über die Schönheit von RoR lernen =)
Hoffe, es hilft!