0

我有一个名为 Event 的模型,它有很多 EventRegistrations,属于一个人。EventRegistration 也有很多 EventAtendee,它们也属于一个人。

我想在 Rails 中订购与事件相关的所有人员,这意味着: - 与事件注册相关联的人员 - 与与注册相关联的事件参与者相关联的人员..

有什么帮助吗?

4

2 回答 2

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

现在,关于你的实际问题。你说你想“订购所有与事件相关的人”

我实际上并没有看到“排序”(又名排序)是如何进入其中的。

要让所有用户与事件相关联,我建议添加一些 :through 关联:

Event
  has_many :event_attendees, :through => :event_registrations
  has_many :people, :through => :event_attendees

然后,当你有一个事件对象时,你可以简单地调用.people它,它就可以工作了。

于 2012-11-02T18:39:30.367 回答
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}
于 2012-11-02T18:41:29.163 回答