Если у пользователя много вещей, а у предмета много статистики, кажется, что у Rails-y есть только один способ показать статистику через пользователя.
class User < ActiveRecord::Base
has_many :things do
def stats
Stat.where(thing_id: proxy_association.owner.things_id)
end
end
end
class Thing < ActiveRecord::Base
belongs_to :user
has_many :stats
end
class Stat < ActiveRecord::Base
belongs_to :thing
has_one :user, through: :thing
end
User.first.things.stats == Stat.where(thing_id: User.first.thing_ids)
Я пытаюсь определить, есть ли другие варианты ... Некоторые люди в моей команде жалуются, что это не естественно. Я чувствую, что это самое естественное выражение отношений, которые вы могли придумать.
У кого-нибудь есть лучшее предложение? Я скажу, я пробовал методы экземпляра, и они не пахнут правильно.