【问题标题】:How can I conditionally call attributes within ActiveRecord's where?如何有条件地调用 ActiveRecord 的 where 中的属性?
【发布时间】:2015-08-27 17:32:48
【问题描述】:

我有一段看起来像这样的代码:

foreign_object = (some_test) ? nil : <some foreign_object>

Document.where(foreign_id: foreign_object, status: "Working", ... )

如果foreign_object 为nil,它只会找到foreign_id = NULL 的文档。有没有办法有条件地把foreign_id放进去?我基本上想写:

Document.where(foreign_id: foreign_object if foreign_object, status: "Working", ...)

【问题讨论】:

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


    【解决方案1】:

    在这种情况下我会这样做:

     documents = Document.where(status: 'working')
     documents = documents.where(foreign_id: foreign_object) if foreign_object
    

    【讨论】:

    • 没有别的办法,顺便说一句:)
    • @ArupRakshit:嗯,可以构建参数哈希并调用where 一次,但是是的,这本质上是一回事。
    • 你们不睡觉吗?!?
    • @BradWerth:准备进入睡眠模式。只是一些习惯性的深夜stackoverflowing :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2015-07-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多