1

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>

ただし、現時点では、オートコンプリートはハードコードされた配列から入力されます。この配列にレールからのデータ値を入力するにはどうすればよいですか?

ありがとう

4

3 に答える 3

2

これを試して:

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

名前列を持つモデル言語があると仮定します

何千ものレコードやレコードがないことを確認してください。速度が低下したり、タイムアウト エラーが発生したりする可能性があります。その場合は、ajax を使用する必要があります。ajaxのことを説明する答えがいくつかあります。

また

 var programmingLang = <%= ruby_array.to_json.html_safe %>;
于 2012-06-02T21:41:30.117 に答える
0

この配列を返すアクションへの単純な AJAX リクエストでそれを行うことができます。

$(document).ready(function() {
  $.get('path-to-json', function(data){
    $( "#BOOKSEARCH" ).autocomplete({
      source: data
    });
});
于 2012-06-02T21:41:16.230 に答える
0

Railsコントローラーは、これらの値を含む配列(またはjs要件に応じてjsonオブジェクト)を返す必要があります。
このコントローラーを単純なajax呼び出しで呼び出して、データを取得できます。
データを取得したら、同じ方法で入力できます。
Rails ajax の詳細については、こちらを参照してください。

于 2012-06-02T21:43:02.527 に答える