У меня есть следующие объекты: Продукты, Рейтинги и Пользователи. Я пытаюсь отфильтровать и выбрать количество Продуктов, которыми владеет Пользователь (через отношение has_many :through
с UserProducts), и усреднить для определенного столбца таблицу Рейтингов, которая соответствует его идентификатору пользователя и правильному идентификатору продукта.
Итак, моя функция выглядит примерно так:
def find_rating(criteria)
product = self.products.find(:all, :conditions => ["criteria = ?", criteria])
rating = self.ratings.where("product_id = ?", product).average(:overall)
end
Я думаю, что поступаю неправильно, потому что пытаюсь найти product_id, передавая весь массив данных, состоящий из нескольких продуктов. Но я думаю об использовании более традиционного цикла, и это кажется запутанным. Может ли кто-нибудь указать мне правильное направление для решения этой проблемы? Спасибо!