Только в параметрах появляются только первые, но другие, которые мы добавляем динамически, не отображаются в параметрах
Приложение JS
(function () {
var ready;
ready = function () {
$(document).on('click', '.remove_fields', function (event) {
$(this).prev('input[type=hidden]').val('1');
$(this).closest('fieldset').hide();
return event.preventDefault();
});
$(document).on('click', '.add_fields', function (event) {
var regexp, time;
time = new Date().getTime();
regexp = new RegExp($(this).data('id'), 'g');
$(this).before($(this).data('fields').replace(regexp, time));
$(document).find('.date-of-service').datepicker({
dateFormat: 'yy-mm-dd'
});
return event.preventDefault();
});
};
$(document).ready(ready);
$(document).on('page:load', ready);
}).call(this);
ApplicationHelper.rb
def link_to_add_fields(name, f, association, **args)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |ff|
render(association.to_s.singularize + "_fields", f: ff)
end
link_to(name, '#', class: "add_fields" , data: {id: id, fields: fields.gsub("\n", "")})
end
Наша форма
<%= f.fields_for :lineitems do |ff| %>
<%= render 'lineitem_fields', f: ff %>
Добавьте еще одну строку счета-фактуры '.html_safe, f,: lineitems%>
Частицы, которые мы добавляем динамически
<%= f.fields_for :items do |ff| %>
<%= render 'items_fields', f: ff %>
Добавить еще один элемент item'.html_safe, f,: items%>