如何用数据库值填充JQuery数组

如何用数据库值填充JQuery数组,jquery,ruby-on-rails,Jquery,Ruby On Rails,我正在使用JQuery和Rails开发一个自动完成表单。但是,我不知道如何将值从数据库拉到JQuery(我相信这必须通过Rails完成) 这是我在jQuery中的自动完成函数 <script> $(document).ready(function() { $( "#BOOKSEARCH" ).autocomplete({ source: programmingLang }); }); var programmingLang = ["ActionSc

我正在使用JQuery和Rails开发一个自动完成表单。但是,我不知道如何将值从数据库拉到JQuery(我相信这必须通过Rails完成)

这是我在jQuery中的自动完成函数

<script>
  $(document).ready(function() {
    $( "#BOOKSEARCH" ).autocomplete({
        source: programmingLang
    });
});
var programmingLang = ["ActionScript","AppleScript","Asp","BASIC","C","C++",
    "Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell",
    "Java","JavaScript","Lisp","Perl","PHP","Python","Ruby","Scala","Scheme"];
</script>

$(文档).ready(函数(){
$(“#图书搜索”).autocomplete({
资料来源:编程语言
});
});
var programmingLang=[“ActionScript”、“AppleScript”、“Asp”、“BASIC”、“C”、“C++”,
“Clojure”、“COBOL”、“ColdFusion”、“Erlang”、“Fortran”、“Groovy”、“Haskell”,
“Java”、“JavaScript”、“Lisp”、“Perl”、“PHP”、“Python”、“Ruby”、“Scala”、“Scheme”];
然而,此时自动完成从硬编码数组填充。如何用rails中的数据值填充这个数组


谢谢

您只需向返回此数组的操作发出一个简单的AJAX请求:

$(document).ready(function() {
  $.get('path-to-json', function(data){
    $( "#BOOKSEARCH" ).autocomplete({
      source: data
    });
});
试试这个:

   var programmingLang = <%= Language.all.map(&:name).to_json.html_safe %>;
var编程语言=;
假设您有一个具有名称列的模型语言

请确保您没有数千条或更多的记录,因为这将减慢速度,甚至可能抛出超时错误。在这种情况下,您应该使用ajax。有两个答案可以解释ajax

var编程语言=;

rails控制器需要返回带有这些值的数组(或json对象,取决于您的js要求)
您可以通过简单的调用调用此控制器来检索数据。
一旦你有了数据,你就可以用同样的方式填充它

你可以找到关于rails ajax的更多信息。

如果你有有限的标记,那么就没有必要点击服务器,最好以数组的形式携带记录。如果你有有限的标记,那么就没有必要点击服务器,最好以数组的形式携带记录。这是真的。这取决于自动完成的具体实现方式。jQueryUI提供了一些动态()和静态()版本的演示,可能会有所帮助。
 var programmingLang = <%= ruby_array.to_json.html_safe %>;