ruby-on-rails - 在设计/注册控制器上使用 Select2 和 Ajax
问题描述
我有一个注册控制器,有一个用户/编辑页面,用户可以在注册时更新他/她的个人资料。用户可以在多个下拉菜单中进行选择。它的一个下拉菜单有 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/
有谁知道我做得不好,我应该怎么做才能将信息从企业模型填充到注册页面。
谢谢
解决方案
推荐阅读
- javascript - 灯箱画廊有什么问题?
- python-3.x - 通过 PyInstaller 构建后,键盘库停止侦听键盘快捷键
- python - Python ConfigParser 检查选项是否为空的有效方法
- docker - docker 容器中的应用程序如何访问 Windows 中的数据库?
- php - Ci 在不同的项目中使用相同的会话
- node.js - 如何在 Node.js 中设置变量值以获取请求的正文数据
- javascript - 如何在对象数组上使用javascript reduce
- objective-c - 如何向我的 Xcode 项目添加 GZIP 支持
- android - 无法在动态功能中访问 android.support.v4.view.KeyEventDispatcher.Component
- cordova - cordova InAppBrowser 打开远程页面支持调用本机方法?