Проблема с DataMapper и find_by_sql - PullRequest
1 голос
/ 09 августа 2011
Player.find_by_sql(["SELECT u.id, u.name, UNIX_TIMESTAMP(u.last_active) AS last_active, TIME_TO_SEC(TIMEDIFF(NOW(), u.last_active)) AS time_difference, r.status, SUM(d.amount) AS gold_spent, SUM(d2.amount) AS points_spent
FROM players u
LEFT JOIN guild_ranks r ON r.player_id=u.id AND r.guild_id=u.guild_id
LEFT JOIN guild_donations d ON d.player_id=u.id AND d.guild_id=u.guild_id AND d.type=1
LEFT JOIN guild_donations d2 ON d2.player_id=u.id AND d2.guild_id=u.guild_id AND d2.type=2
WHERE u.guild_id=? ORDER BY r.status, u.level DESC", guild]

Как я могу получить возвращенный DataMapper :: Collection, который также включает gold_spent и points_spent, а также time_difference?

gold_spent, points_spent и time_difference должны не быть свойствами (или есть способ сделать так, чтобы они были просто свойствами DM, а не в базе данных?)

...