如何根据相关模型的存在检索ActiveRecord记录

时间:2015-10-27 13:08:20

标签: ruby-on-rails activerecord

我有两个模型,ParentProfileRoomParentAssignment

class ParentProfile < ActiveRecord::Base
  has_many :room_parent_assignments

class RoomParentAssignment < ActiveRecord::Base
  belongs_to :room_parent_profile, class_name: 'ParentProfile', foreign_key: 'parent_profile_id'

我想检索 ParentProfile的所有room_parent_assignments条记录。我正在寻找类似下面的陈述(不用说,无效):

@non_room_parents = ParentProfile.where(!room_parent_assignments.present?)

我该怎么做?

3 个答案:

答案 0 :(得分:2)

以下查询应该

if (character.matches("[[\\]^_`]")){
    isValid = false;
}

答案 1 :(得分:1)

使用以下代码:

parent_ids = RoomParentAssignment.select(parent_profile_id)

@non_room_parents = ParentProfile.where.not(:id => parent_ids)

答案 2 :(得分:0)

这里有两个选项:

选项1

@non_room_parents = ParentProfile.where.not(id: RoomParentAssignment.all.map(&:parent_profile_id))

选项2

@non_room_parents = ParentProfile.where("id NOT IN (?)", RoomParentAssignment.all.map(&:parent_profile_id))

两者都等于没有父母的房间。