Новый для Ruby и Rails, но сейчас я изучаю книгу (что, очевидно, ничего не значит, ха-ха).
У меня есть две модели: Event и User подключены через таблицу EventUser
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 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
Этот проект представляет собой календарь, в котором я должен отслеживать людей, подписывающих и расчесывающих свое имя для данного события. Я считаю, что многие для многих - хороший подход, но я не могу сделать что-то вроде этого:
u = User.find :first
active_events = u.events.find_by_active(true)
Поскольку события фактически не имеют этих дополнительных данных, модель EventUser делает это. И хотя я мог сделать:
u = User.find :first
active_events = []
u.event_users.find_by_active(true).do |eu|
active_events << eu.event
end
Это, кажется, противоречит "пути рельсов". Может ли кто-нибудь просветить меня, это уже давно звонит мне (сегодня утром)?