Когда я использую псевдоним столбца в запросе с помощью find_by_sql, он не кажется установленным в объектах результата, даже когда я добавляю attr_accessor для этого свойства.
class Country < ActiveRecord::Base
attr_accessor :average_score
def self.sorted_by_average_score
sql = "SELECT country_id, AVG(score) AS average_score, countries.name " +
"FROM players " +
"INNER JOIN countries ON players.country_id = countries.id " +
"GROUP BY country_id "
Country.find_by_sql(sql)
end
end
Я бы ожидал, что смогу это сделать:
countries = Country.sorted_by_average_score.first.average_score
... но он всегда возвращает nil, даже если значение определенно возвращается из запроса.
Может ли кто-нибудь объяснить мне, почему атрибут не задан в объекте?