我有一个名为Event的模型,它有许多EventRegistrations,属于一个人。 此外,EventRegistration还有许多EventAtendees,它也属于一个人。
我想在Rails中订购与事件相关的所有人,这意味着: - 与事件注册相关联的人员 - 与注册相关联的事件参与者相关联的人员。
任何帮助?
答案 0 :(得分:2)
据我了解,您有以下模型和关联:
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
现在,关于你的实际问题。你说你想'命令所有与事件有关的人'
我实际上并没有看到'订购'(a.k.a排序)是如何进入这个的。
要让所有与某个事件相关联的用户,我建议添加一些:通过关联:
Event
has_many :event_attendees, :through => :event_registrations
has_many :people, :through => :event_attendees
然后,当你有一个事件对象时,你可以简单地在它上面调用.people
,它就会起作用。
答案 1 :(得分:0)
假设您已正确设置所有ActiveRecord关联,以下是按姓氏命名的方式。
event_registrations = EventRegistrations.find(:all)
ordered_event_registrations = event_registrations.sort{|registration_a,registration_b|registration_a.people.lastname<=>registration_b.people.lastname}