首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何干燥链接的ActiveRecord调用

如何干燥链接的ActiveRecord调用
EN

Stack Overflow用户
提问于 2013-12-29 08:21:15
回答 1查看 29关注 0票数 0

考虑下面这段代码:

代码语言:javascript
运行
复制
if ids.blank?
  UptimeSummary.
    where("start_time >= ?", start_time).
    group(:uptime_monitor_id).
    select("uptime_monitor_id, sum(uptime)/count(*) AS uptime_average")
else
  UptimeSummary.
    where(:uptime_monitor_id => ids).
    where("start_time >= ?", start_time).
    group(:uptime_monitor_id).
    select("uptime_monitor_id, sum(uptime)/count(*) AS uptime_average")
end

这两个子句之间的唯一区别是后一个子句中的附加(:uptime_monitor_id => ids)

这看起来相当不干练。我怎么才能把它清理干净?

EN

回答 1

Stack Overflow用户

发布于 2013-12-29 08:21:15

当我输入问题时,我想出了答案。因为对ActiveRecord查询链的调用是延迟的,所以您可以这样做:

代码语言:javascript
运行
复制
q = UptimeSummary.
      where("start_time >= ?", start_time).
      group(:uptime_monitor_id).
      select("uptime_monitor_id, sum(uptime)/count(*) AS uptime_average")
q = q.where(:uptime_monitor_ids => ids) unless ids.blank?

如果你知道learn方法,我很想了解它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20820842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档