我有一个优化问题。我搜索如何使用 ActiveRecord 请求获取 one_to_one 或 one_to_many 中没有任何链接的所有实体。
我有:
class Model1 < ActiveRecord::Base
has_one :model2
...
和
class Model2 < ActiveRecord::Base
belongs_to :model1
...
如果我想要所有model2s非链接的列表,我只需要这样做:
unlinked_model2s = Model2.where(:model1_id => nil)
但是我如何为model1s做同样的事情呢?我将拥有未链接到模型 2 的所有模型 1 的列表。
我尝试了很多东西,但使它起作用的唯一方法是对所有请求一一处理,这太可怕了:
unlinked_model1s = Array.new
Model1.all.each do |model1|
unless model1.model2
unlinked_model1s << model1
end
end
感谢您的帮助!