как передать массив объекта (пользователи в моем случае) в скрипт jQuery из контроллера - PullRequest
1 голос
/ 06 марта 2009

Я не могу понять, как использовать переменные, инициализированные в контроллере, например, для скрипта jQuery (автозаполнение в моем случае). Поэтому я использую Rails и получаю список моих авторов. Как я могу ссылаться на них в скрипте jQuery, где я хотел бы использовать плагин автозаполнения jQuery, например:

[код] $ (документ) .ready (function () { $ ("# book_author"). автозаполнение (URL или данные, параметры); }); [/код] Так что я должен передать массив авторов из контроллера в скрипт. Как это сделать?

1 Ответ

3 голосов
/ 06 марта 2009

Вы можете сделать это так.

<script type="text/javascript">
  var authors = <%= Author.find(:all).to_json -%>;
  $(document).ready(function() { 
      $("#book_author").autocomplete(authors, options ); });
</script>

Строка Json будет оцениваться непосредственно в JavaScript как объект. Конечный результат в этом случае будет примерно таким:

var authors = [{"author": {"id": 1, "name": "John"}}, {"author": {"id": 2, "name": "Jack"}}];

, который затем будет массивом объектов, легко обрабатываемых в JavaScript. Чтобы заставить его работать с автозаполнением, вам, вероятно, придется еще немного обработать, чтобы получить его в нужном формате.

Просто помните, что строка json будет включать модель, если вы не выключили ее с помощью

ActiveRecord::Base.include_root_in_json = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...