Я новичок в рельсах, так что обнажите меня на этом ... Короче, у меня есть приложение, которое отслеживает службы (серверы) с IP-адресами. Я пытаюсь настроить его так, чтобы при создании новой службы происходило следующее:
- Все IP-адреса ищутся, если у них нет service_id, они классифицируются как доступные и возвращаются в поле выбора на новой странице сервиса.
- Пользователь выбирает один или несколько IP-адресов из поля выбора, заполняет остальные необходимые данные службы, а затем, когда он нажимает кнопку «Отправить», каждый IP-адрес обновляется с помощью service_id только что созданной службы. (чтобы IP-адрес был помечен как принятый).
Как я понимаю, я думаю, что это возможно с вложенными или виртуальными атрибутами ... Но я не уверен.
У меня есть такие модели:
class Service < ActiveRecord::Base
has_many :ips
attr_accessor :service_ips
end
class Ip < ActiveRecord::Base
belongs_to :service
end
Контроллер так:
class ServicesController < ApplicationController
def new
@available_ips = Ip.where(:service_id == nil)
end
И такой вид:
<%= form_for(@service) do |f| %>
<%= f.label :service_ips %>
<%= f.collection_select(:service_ips, @available_ips, :id, :address, { }, {:multiple => true, :size => 5}) %>
<%= f.label :hostname %><br />
<%= f.text_field :hostname, :size => 40 %>
<%= f.submit :id => "submit"%>
<% end %>
Как мне сделать так, чтобы каждый выбранный IP обновлялся только что созданным идентификатором service_id?
Заранее спасибо за помощь.