rails活动记录if语句中的select

时间:2015-07-24 18:21:56

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord

我需要使用查询,其中我在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")

理想情况下是否有更好的解决方案可能没有将该功能添加到模型中?

0 个答案:

没有答案