Я обновляю сайт с помощью Rails 3.1 и добавляю некоторые функции. Это приложение отслеживает тесты для коллекции сайтов. Первоначально я сохранял оценку для каждого теста в виде столбца в таблице «Тесты», но теперь я создал новую модель под названием «Обзоры», чтобы сохранить историю оценок и комментариев, назначенных каждому тесту. Модели выглядят так:
class Site < ActiveRecord::Base
has_many :tests
has_many :reviews, :through => :tests
class Test < ActiveRecord::Base
has_many :reviews
belongs_to :site
class Review < ActiveRecord::Base
belongs_to :test
has_one :user
Ранее я мог сделать что-то подобное в модели сайта, чтобы получить некоторые отчетные данные по оценкам:
def total_a_grades
tests.count(:conditions => "reviewer_grade = 4 and review_status = 3")
end
Поскольку оценки теперь не соответствуют тестовой модели, я создал этот метод для доступа к самой последней оценке для каждого теста:
def last_grade
return reviews.find(:last).grade
end
Это прекрасно работает для отображения самой последней оценки в тестовом представлении, но как я могу использовать ее на уровне сайта? Поскольку значение теперь находится в методе, который не хранится в базе данных, я не знаю, как с ним работать, и не могу найти ничего, связанного с этим, на основных сайтах онлайн-учебников / скринкастов.
Заранее спасибо за помощь!