Khi tôi sử dụng bí danh cột trong truy vấn với find_by_sql, nó dường như không được đặt trong đối tượng kết quả, ngay cả khi tôi thêm attr_accessor cho thuộc tính.Đường ray: đặt thuộc tính bí danh cột với find_by_sql
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
tôi mong chờ để có thể làm điều này:
countries = Country.sorted_by_average_score.first.average_score
... nhưng nó luôn luôn trả về nil, mặc dù một giá trị được dứt khoát trở về từ truy vấn.
Có ai có thể giải thích cho tôi tại sao thuộc tính không được đặt trong đối tượng không?
Cảm ơn ScottD.I đã có cùng một vấn đề và điều này giải quyết nó. – Tam