У меня есть две существующие таблицы:
Устройства имеет столбец inet: ipaddress
В сети есть столбец inet: cidr
Мне нужна область в таблице Devices, которая возвращает только те устройства, IPaddress которых НЕ содержится ни в одной из сетей. Cidr
ПРИМЕЧАНИЕ: postgres имеет оператор INET <<, чтобы проверить, содержит ли CIDR IP-адрес. Но это обрабатывает только один CIDR, в то время как у меня есть целая таблица из них. </p>
Мне нужно что-то вроде этого:
class Device
scope :not_in_any_network, -> where("devices.ipaddress NOT IN (?)", Network.select(:cidr))
Цель состоит в том, чтобы иметь возможность связать прицел с другими, такими как:
problems = Device.active.not_in_any_network.other_scopes