如何告诉模型有一个空关系

时间:2016-07-07 06:57:16

标签: ruby-on-rails ruby postgresql ruby-on-rails-5

可能有一个答案,但我可能不会用正确的词搜索。如何告诉我的模型有一个关联对象?有意义吗?

#Foo Model:
 has_one :bar

#User Model:
 has_many :foos

User.first.foos.bar #=> {object}

基本上我想要的是,给我所有没有foos的{​​{1}}。这可能吗?

而不是将表添加到barfoo,然后:

has_bar: <boolean>

编辑:

根据Albin的回答,这可能是duplicate post。但它仍适用于Rails 5。

2 个答案:

答案 0 :(得分:1)

如果你阅读了这个问题的答案,你会发现多种方法:Want to find records with no associated records in Rails 3

我这样做的方式是:

User.first.foos.includes(:bar).where(bars: { foo_id: nil } )

答案 1 :(得分:1)

User.first.foos.select { |foo| foo.include(:bar) && foo.bar.id.nil? }