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

时间:2012-06-02 21:32:06

标签: jquery ruby-on-rails

我正在使用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>

然而,目前自动完成从硬编码数组填充。如何使用rails中的数据值填充此数组?

由于

3 个答案:

答案 0 :(得分:2)

试试这个:

   var programmingLang = <%= Language.all.map(&:name).to_json.html_safe %>;

假设您的模型语言具有名称列

确保你没有数千或记录,因为这会减慢甚至可能会导致错误。在这种情况下你应该使用ajax。有几个答案解释了ajax的事情。

 var programmingLang = <%= ruby_array.to_json.html_safe %>;

答案 1 :(得分:0)

您可以使用简单的AJAX请求来执行返回此数组的操作:

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

答案 2 :(得分:0)

您的rails控制器需要使用这些值返回一个数组(或json对象,具体取决于您的js要求)。
您可以通过简单的ajax调用来调用此控制器来检索数据 获得数据后,您可以采用相同的方式填充数据。
你可以找到更多关于rails ajax here

的信息