ОК. Итак, мои модели такие:
Team
has_many :users, :through => memberships
User
has_one :user_status
Теперь в моей модели Team я хочу найти максимальное значение 'updated_at'
для моих 'user_status'
моделей.
Я пытался сделать что-то вроде:
Team
has_many :users, :through => :memberships
has_many :user_statuses, :through => :users
def max_last_updated_status
user_statuses.maximum(:updated_at)
end
но это дало мне:
Invalid source reflection macro :has_one for has_many :user_statuses, :through => :users. Use :source to specify...
Так что мне было интересно, есть ли лучший способ сделать это, могу ли я просто создать свойство модели User, например:
def status_updated_at
user_status.updated_at
end
и затем измените класс моей команды, чтобы иметь:
def max_last_updated_status
user.maximum(:status_updated_at)
end
? Я предполагаю, что нет, поскольку 'status_updated_at'
на самом деле не столбец, и поэтому генерация sql не удастся ...
Еще одна точка зрения на эту проблему будет высоко оценена.