我需要使用查询,其中我在select语句中有if条件。在rails活动记录中有这种方法吗?
这是我的sql只涉及一个表:
select id, voyage_id, user_id, IF(download_times > 0, "downloaded", "created") as status
from download_counts
group by voyage_id, user_id, status
我通过将此功能添加到模型中找到了解决方案:
def self.with_status
select("download_counts.*, IF(download_times > 0, \"downloaded\", \"created\") as status")
end
然后以这种方式调用它:
.with_status.group("voyage_id, user_id, status")
理想情况下是否有更好的解决方案可能没有将该功能添加到模型中?