Я ничего не понимаю в этом: у меня есть форма, в которой вы можете выбрать, какой IP-адрес прослушивает порт службы.
<%= form.collection_select(:listener_id, Ipaddress.all, :id, :ipv4address, {include_blank: t("ports.select")}, { class: "form-control" }) %>
Учитывая следующую модель:
- У клиента много систем
- В системе много сетевых интерфейсов
- У сетевого интерфейса много IP-адресов
- В системе много служб
- Служба имеет много портов
Я хочу соединить «Порты» с «IP-адресом». Как вы можете видеть, в моем collection_select я создаю коллекцию всех IP-адресов. Даже из других систем или других клиентов. Я не хочу этого.
В другом случае я мог бы сделать что-то вроде: Customer.find(System.find(@networkinterface.system.id).customer_id).systems.all
, но я не могу найти способ, как я мог бы сейчас сделать мою Коллекцию. Я хочу составить список всех возможных IP-адресов в этой системе или из всей системы клиента.
Может ли кто-нибудь меня осветить? Что было бы самым простым и как лучше всего это сделать?