IPアドレスでサービス(サーバー)を追跡するアプリケーションがあります。新しいサービスを作成するときに次のように設定しようとしています。
- すべてのIPアドレスが検索され、service_idがない場合は、使用可能として分類され、新しいサービスページの選択ボックスに戻されます。
- ユーザーが選択ボックスから1つ以上の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で更新されるようにするにはどうすればよいですか?