Neu für Ruby und Rails, aber ich bin inzwischen in einem Buch ausgebildet (was anscheinend nichts bedeutet, haha).
Ich habe zwei Modelle, Event und User, die über eine Tabelle EventUser verbunden sind
class User < ActiveRecord::Base
has_many :event_users
has_many :events, :through => :event_users
end
class EventUser < ActiveRecord::Base
belongs_to :event
belongs_to :user
#For clarity's sake, EventUser also has a boolean column "active", among others
end
class Event < ActiveRecord::Base
has_many :event_users
has_many :users, :through => :event_users
end
Dieses Projekt ist ein Kalender, in dem ich nachverfolgen muss, wie sich Leute für eine bestimmte Veranstaltung anmelden und ihren Namen auskratzen. Ich denke, dass viele zu viele ein guter Ansatz sind, aber ich kann so etwas nicht tun:
u = User.find :first
active_events = u.events.find_by_active(true)
Da Ereignisse diese zusätzlichen Daten nicht haben, ist dies beim EventUser-Modell der Fall. Und während ich tun konnte:
u = User.find :first
active_events = []
u.event_users.find_by_active(true).do |eu|
active_events << eu.event
end
Dies scheint dem "Schienenweg" zu widersprechen. Kann mich jemand aufklären, das nervt mich heute Abend (heute Morgen) schon lange?