Крейг, это звучит так, как будто вы ищете, является accepts_nested_attributes_for, который является гораздо лучшим способом обработки вложенных моделей в форме.
Вместо того, чтобы просто украсть все работы Райана и опубликовать их здесь, я просто дам вам ссылку на его скринкаст:
http://railscasts.com/episodes/196-nested-model-form-part-1
Это основано на его серии сложных форм.
Вы должны быть в состоянии рассказать этот урок тому, что вы пытаетесь сделать, но если нет, я с радостью помогу.
EDIT:
Хорошо, после просмотра вашего кода, есть несколько вещей, вызывающих у вас проблемы. :)
Прежде всего, с ассоциациями вам не нужно тянуть дополнительную коллекцию для выставления счетов, т. Е .:
@host = Host.find(params[:id])
@voips = Voip.find(:all)
@custsupps = Custsupp.find(:all)
@payments = Payment.find(:all)
@billings = Billing.find(:all) # <-- This is not needed and causing your problems
Настройка ассоциации в модели делает все это за вас. Это часть магии рельсов. : D
Теперь важно отметить, что при использовании ассоциаций необходимо убедиться, что объекты действительно связаны. Другими словами, если у вас есть 3 объекта Billings в вашей базе данных, и они не связаны с вашим объектом Host, они не будут отображаться в форме.
Если вы пытаетесь связать биллинг с Хостом с помощью флажка, вы захотите использовать другой подход, потому что ваша форма с отображением только Биллингс уже связана с вашим Хостом.
Если вы просто пытаетесь отредактировать или изменить существующие Биллинги, которые связаны с Хостом, где флажок представляет, например, «платный» атрибут (логический), тогда этот подход хорош, и ваш код формы будет выглядеть примерно так :
<% f.fields_for :billings do |b| %><br />
<%= b.check_box :paid %> <%= b.title %>
<% end %>
Так что, возможно, уточнить, что вы пытаетесь достичь с точки зрения функциональности, и мы сможем найти лучшее решение.