Вложенная форма Rails с автозаполнением select2 - PullRequest
0 голосов
/ 26 сентября 2018

Я использую nested_form_fields для вложенных полей и select2

Проблема заключается в том, что при добавлении еще одной строки из вложенных полей предыдущее выбранное значение исчезает, и это значение невозможно выбрать снова.

_form.htmt.haml

= f.nested_fields_for :expense_accounts do |ff|
  .row.mt-2
    .col-md-2
      .plain-select
        = ff.select  :expense_type, '', {}, class: "form-control select_expense_types"
    .col-md-2
      = ff.text_area :description, class: 'form-control', cols: "2", rows: "2"
    .col-md-2
      = ff.select :status, Expense.statuses.map { |key, value| [key.titleize, key] } , {class: "form-control" , required: true}
    .col-md-2
      = ff.text_field :amount, class: 'form-control'
    .col-md-2
    .col-md-2
      = ff.remove_nested_fields_link 'Remove'
%br
= f.add_nested_fields_link :expense_accounts, 'Add row', class: 'btn btn-primary add_row'

- content_for :scripts do
  :javascript 
     set_expense_type_select('.select_expense_types', "Please select");
      $('.add_row').on('click', function(){

        setTimeout(
            function() {
              set_expense_type_select('.select_expense_types', "Please select");  
            },
            500);
      })

select_autocomplete.js

var set_expense_type_select = function(selector, place_holder){
    if ($(selector).length > 0) {
        $(selector).select2({
            ajax: {
                url: "/api/select_searches/find_expense_type",
                dataType: 'json',
                delay: 250,
                data: function (params) {
                    return {
                        // per_page: 10,
                        q: params.term//, // search term
                        // page: params.page
                    };  
                },
                processResults: function (data, params) {
                    // params.page = params.page || 1;
                    return {
                        results: data
                    };
                },
                cache: true
            },
            language: {
                noResults: function() {return "No results <a class='pull-right header-btn hidden-mobile' data-toggle='modal' data-target='#new-expense-type' href='#'>Add New</a>"; }
            },
            placeholder: place_holder,
            escapeMarkup: function (markup) { return markup; },
            templateResult: formatRepo,
            templateSelection: formatRepoSelection
        });
    }
} 

Каждый раз, когда я добавляю новую строку, все предыдущие expense_type очищаются и это выбранное значение не можетвыберите снова

Есть идеи?Любая помощь будет оценена.

...