Ruby on rails 查询CIDR列中未包含IP地址的记录

Ruby on rails 查询CIDR列中未包含IP地址的记录,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有两个现有表格: 设备有一列inet:ipaddress Networks有一列inet:cidr 我需要Devices表上的一个作用域,该作用域只返回那些IP地址不包含在任何networks.cidr中的设备 注意:postgres有一个INET操作符我可以使用以下代码获得我想要的结果: Device.where('devices.ipaddress <<= ANY(ARRAY[?]::inet[])', Network.pluck('TEXT(cidr)')) Dev

我有两个现有表格: 设备有一列inet:ipaddress Networks有一列inet:cidr

我需要Devices表上的一个作用域,该作用域只返回那些IP地址不包含在任何networks.cidr中的设备


注意:postgres有一个INET操作符我可以使用以下代码获得我想要的结果:

    Device.where('devices.ipaddress <<= ANY(ARRAY[?]::inet[])', Network.pluck('TEXT(cidr)'))

Device.where('devices.ipaddress)您是否尝试过
where NOT devices.ipaddress
    problems = Device.active.not_in_any_network.other_scopes
    Device.where('devices.ipaddress <<= ANY(ARRAY[?]::inet[])', Network.pluck('TEXT(cidr)'))