【问题标题】:How to do Rails Active Record query for this如何为此做 Rails Active Record 查询
【发布时间】:2014-02-08 21:49:22
【问题描述】:

我需要按国家/地区过滤控制器中的模型。我的模型有 4 个位置字段,

loc1, loc2, loc3 and loc4

国家/地区位于loc3loc4。如果国家/地区位于loc3,则loc4 为空白。

我的模型上有一个名为 country 的方法,它返回国家/地区,但我无法在我的 Active Record 查询中使用它。

如何进行查看 loc3 和 loc 4 的 AR 查询,如果 loc4 为空白则使用 loc3 ad 如果 loc4 不为空白则使用 loc4。

有什么想法吗?

谢谢

【问题讨论】:

    标签: sql ruby-on-rails activerecord


    【解决方案1】:

    如果你使用的是postgres或mysql,你可以使用COALESCE函数

    Model.select("COALESCE(loc4, loc3) AS location")
    

    在你的控制器中,你可以说

    model.location
    

    【讨论】:

      【解决方案2】:

      只需使用普通的 where 方法(如果空白是指"")。

      Model.where(country: (loc3 || loc4))
      

      【讨论】:

        猜你喜欢
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        相关资源
        最近更新 更多