【问题标题】:What does it mean for Rails merge to win a where clause?Rails 合并赢得 where 子句意味着什么?
【发布时间】:2017-09-14 16:35:09
【问题描述】:

rails guide 说:“如果我们确实希望最后一个 where 子句获胜,那么可以使用 Relation#merge。”

在下面的例子中,如果只有User.where(User.inactive),为什么还要使用合并?

User.active.merge(User.inactive)
# SELECT "users".* FROM "users" WHERE "users"."state" = 'inactive'

【问题讨论】:

  • 我认为您的问题应该是 where 子句赢得合并 - 我很确定这意味着在合并中优先考虑哪个子句

标签: sql ruby-on-rails activerecord


【解决方案1】:

User.active.merge(User.inactive) - 你应用了两个相反的作用域。 state = "active"state = "inactive"。与AND 一起加入,他们会让你什么都不查询(state = "active" AND state = "inactive")。我认为他们说merge 将击败#merge 之前使用的范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2020-03-12
    • 2023-03-10
    • 2017-05-05
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多