我有一个名为 Event 的模型,它有很多 EventRegistrations,属于一个人。EventRegistration 也有很多 EventAtendee,它们也属于一个人。
我想在 Rails 中订购与事件相关的所有人员,这意味着: - 与事件注册相关联的人员 - 与与注册相关联的事件参与者相关联的人员..
有什么帮助吗?
我有一个名为 Event 的模型,它有很多 EventRegistrations,属于一个人。EventRegistration 也有很多 EventAtendee,它们也属于一个人。
我想在 Rails 中订购与事件相关的所有人员,这意味着: - 与事件注册相关联的人员 - 与与注册相关联的事件参与者相关联的人员..
有什么帮助吗?
据我了解,您有以下模型和关联:
Event
has_many :event_registrations
EventAttendee
belongs_to :event_registration
belongs_to :person
Person
has_many :event_registrations
has_many :event_attendees
EventRegistration
belongs_to :person
belongs_to :event
现在,关于你的实际问题。你说你想“订购所有与事件相关的人”
我实际上并没有看到“排序”(又名排序)是如何进入其中的。
要让所有用户与事件相关联,我建议添加一些 :through 关联:
Event
has_many :event_attendees, :through => :event_registrations
has_many :people, :through => :event_attendees
然后,当你有一个事件对象时,你可以简单地调用.people
它,它就可以工作了。
假设您正确设置了所有 ActiveRecord 关联,那么您将按此人的姓氏排序。
event_registrations = EventRegistrations.find(:all)
ordered_event_registrations = event_registrations.sort{|registration_a,registration_b|registration_a.people.lastname<=>registration_b.people.lastname}