I realized what the problem is.
I have
<%= f.fields_for :materials do |builder| %> <%= render partial: 'material_fields', locals: {f: builder, feed: true } %> <% end %>
and later in the same view I have
<%= f.fields_for :materials do |builder| %> <%= render 'material_fields', f: builder %> <% end %>
Apparently, when rendering the same partial twice from the same file, the parameters are mixed up. Further testing may isolate the problem, but I have no energy or time.
Decision. Declare the same options for both renders. The values may be different, and they work as expected.
<%= f.fields_for :materials do |builder| %> <%= render partial: 'material_fields', locals: {f: builder, feed: true } %> <% end %> <%= f.fields_for :materials do |builder| %> <%= render partial: 'material_fields', locals: {f: builder, feed: false } %> <% end %>
source share