Rails 5 - 在不使用join的情况下加入null关联?

时间:2017-10-23 18:15:52

标签: ruby-on-rails join ruby-on-rails-5 rails-activerecord

我想要什么

我需要获得所有订单而不接受特定用户,但我只是遇到第一部分的问题。

我有什么

以下是我的模特

return_per_action_partial = return_per_action_partial.toPandas()

我尝试了什么

我已经检查了这个答案

但是他们申请了一个has_many - 属于场景(可能是他们失败的原因)。我的方案更简单: has_one - belongs_to

到目前为止(在自己尝试并阅读其他SO问题之后),以下失败了。

  • class Order < ApplicationRecord has_one :acceptance end class Acceptance < ApplicationRecord belongs_to :order end
  • Order.includes(:acceptance).where(acceptance: { id: nil})
  • Order.left_outer_joins(:acceptance).where(acceptance: { id: nil })

此外,我无法 Order.joins(:acceptance).merge(Acceptance.where(order_id: nil, id: nil)),因为它会立即抓取与Order.joins(:acceptance)关联的orders,我希望与此相反。< / p>

难道不是先验的,但是它给了轻微的痛苦。

1 个答案:

答案 0 :(得分:1)

Order.includes(:acceptance).where(acceptances: { id: nil})应该有效。你最后错过了s。使用带有嵌套哈希参数的where语句构造查询时,第一个键始终是表名