Использование Select2 и Ajax на контроллере Devise / Registration - PullRequest
0 голосов
/ 20 октября 2019

У меня есть контроллер регистрации, со страницей пользователя / редактирования, где пользователь может обновить свой профиль после регистрации. Пользователь может выбирать из нескольких выпадающих меню. В одном из выпадающих меню есть более 9000 вариантов, которые я хотел бы вызвать, используя AJAX вместо загрузки всей таблицы обычным методом select2.

У меня есть модифицированный контроллер регистрации со следующим:

class RegistrationsController < Devise::RegistrationsController
  protected


  def edit
    @entreprises = Entreprise.all
    respond_to do|format|
      format.json{
        render :json => @entreprises
      }
    end
  end

...

В моем users.edit.html у меня есть простая форма со строкой:

<%= f.hidden_field :company, :class =>"select2", :id => "ajax-example"%>

В теге javascript у меня есть:

<SCRIPT>
    $(document).ready(function() {
        $('#ajax-example').select2({
            ajax: {
                url: "/edit.json",
                dataType: "json",
                results: function(data, page) {
                    return {
                        results: $.map( data, function(entreprise, i) {
                            return { id: entreprise.id, text: entreprise.company_name }
                        } )
                    }
                }
            }
        });
    });
<SCRIPT>

Мои маршруты:

   devise_for :users, controllers: {registrations: "registrations", confirmations: "confirmations", omniauth_callbacks: "omniauth_callbacks"}, skip: :omniauth_callbacks

Но когда я перезагружаю страницу, она показывает пустое поле select2. Я основываю свою работу на следующем примере:

http://rails -select2-example.herokuapp.com /

Кто-нибудь знает, что у меня плохо получается,что я должен сделать, чтобы иметь возможность заполнять информацию из модели Enterprise на странице регистрации.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...