我有Box和Toy实体。
class Box < ApplicationRecord
has_one :toy
end
class Toy < ApplicationRecord
belongs_to :box
end
某些东西损坏了我的数据,一些玩具被删除了。 如何选择所有已经存在玩具链接的Box不再存在?
我可以编写复杂的SQL,但是想要感觉Rails魔术可以做类似的事情:
Box.where(toy: does_not_exist_any_more)
返回的框在toy_id字段中应该不是nil而是数字,而id = 数字
的玩具中没有记录答案 0 :(得分:0)
尝试:
<input type="text"
class="form-control"
required minlength="3"
name="name"
placeholder="Search for people..."
formControlName="name"
[(ngModel)]="name"
typeaheadOptionField="name"
[typeahead]="clanEmitter"
[typeaheadScrollable]="true"
[typeaheadAsync]="true"
(typeaheadLoading)="changeTypeaheadLoading($event)">
这:
Box.where.not(id: Toy.all.pluck(:box_id))
将为您提供Toy.all.pluck(:box_id)
的任何实例引用的所有Box
个ID。
然后这个:
Toy
将为您提供Box.where.not(id: Toy.all.pluck(:box_id))
的某些实例当前未引用的所有框。