Вы можете использовать метод accepts_nested_attributes_for встроенный в активную запись легко обрабатывать создание, обновление и уничтожение вложенных моделей
http://railscasts.com/episodes/196-nested-model-form-revised?view=asciicast
редактированиякА ВОПРОСА ИЗМЕНЕНИЕ
Вы, кажется, прошли много изменений к своему первоначальному вопросу, позвольте мне посмотреть, смогу ли я помочь вам разобраться в чем-то.
Предположим, что ваш класс активов имеет столбец с именем вложение, и у вас есть класс загрузчика несущей, называемый AttachmentUploader. Вы можете установить этот класс в класс активов, как вы показываете в вашем вопросе
mount_uploader :attachment, AttachmentUploader #CarrierWave
Вы не показ разметки форм в вопросе, но основанный на методе project_params вашего контроллера, кажется, что вы ожидаете свойство asset_attributes. Вы захотите убедиться, что ваша форма правильно построит этот массив, наиболее легко выполняемый с помощью команды fields_for. Если запутались этой части относятся к этому вопросу Rails 4 Nested Attributes Unpermitted Parameters
В основном это должно выглядеть так
проектов/_form.html.erb
<%= form_for @project, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<%= f.fields_for :assets do |builder| %>
<%= render 'assets_fields', :f => builder %>
<% end %>
<p><%= f.submit %></p>
<% end %>
проекты/_assets_fields.html.erb
<p>
<%= f.file_field :attachment %>
</p>
При отправке формы проекта вам не нужно перебирать активы вручную, определяя, являются ли они существующими активами, которые обновляются, новые создаваемые активы или активы, помеченные для удаления.Эта логика все обрабатывается для вас, добавив в вашем проекте класса
accepts_nested_attributes_for :assets, :allow_destroy => true
Просто звоните
project.save
или
project.update
будет автоматически создавать/обновлять/уничтожать вложенные средства обертывание весь процесс в транзакции, чтобы все это было успешным или все не удалось. Единственным исключением из этого является то, что активная запись не может обернуть действия несущей волны в транзакции базы данных, чтобы в конечном итоге вы могли потерять потерянные файлы на своем сервере.
Спасибо, я сменил модели и все еще у меня проблема. Я обновил вопрос – user1876128
, основываясь на вашем комментарии. Я попытался использовать nested_attributes вместе с ассоциацией Polymorphic. все еще это не спасает я ahev детали в этом сообщении Rails: (http://stackoverflow.com/questions/25186981/rails-polymorphic-assosiation-and-accepts-nested-attributes) – user1876128