У меня есть контроллер регистрации, со страницей пользователя / редактирования, где пользователь может обновить свой профиль после регистрации. Пользователь может выбирать из нескольких выпадающих меню. В одном из выпадающих меню есть более 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 на странице регистрации.
Спасибо