Your whole approach look wrong to me. Fields for has only one instance because a publication can have only upto one edit. I think you should define it like this.
<%= form_for(@document, url: url_for(create_edits_document_path)) do |f| %>
<%= f.fields_for :publications do |pub| %>
<%= pub.fields_for :edit, pub.object.edit do |ef| %>
<%= ef.text_field(:name) %>
<%= ef.text_area(:body, class: 'editable_area') %>
<%= ef.hidden_field(:publication_id) %>
<% end %>
<% end %>
<% end %>
You might find some issues as the above code is not tested.