我无法理解如何使用控制器中初始化的变量,例如,jQuery脚本(在我的情况下是自动完成)。所以我正在使用Rails并获取我的作者列表。如何在jQuery脚本中引用它们,我想使用这样的jQuery自动完成插件:
[代码] $(document).ready(function(){ $(“#book_author”)。自动完成(网址或数据,选项); }); [/码] 所以我应该将我的authors数组从控制器传递给脚本。怎么做?
答案 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