如何将一个对象数组(在我的情况下是用户)从控制器传递给jQuery脚本

时间:2009-03-06 10:49:54

标签: ruby-on-rails

我无法理解如何使用控制器中初始化的变量,例如,jQuery脚本(在我的情况下是自动完成)。所以我正在使用Rails并获取我的作者列表。如何在jQuery脚本中引用它们,我想使用这样的jQuery自动完成插件:

[代码] $(document).ready(function(){     $(“#book_author”)。自动完成(网址或数据,选项);   }); [/码] 所以我应该将我的authors数组从控制器传递给脚本。怎么做?

1 个答案:

答案 0 :(得分:3)

你可以这样做。

<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