传递嵌套属性时jQuery自动完成

时间:2016-06-24 07:24:48

标签: jquery ruby-on-rails

我是新手,我有用户has_many房子,房子belongs_to地方 /views/form_html_erb

我在users.coffee文件中的jquery

jQuery ->
$('#user_houses_place_name').autocomplete({source: ['gani', 'money']})

我的user.rb是/model/users.rb

我的问题是,当我自动完成用户的位置时,它没有在text_field中给出选项,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您似乎使用Coffeescript,它依赖于标签空间并具有不同的语法。您可以在此处将您的javascript转换为coffeescript:http://www.js2.coffee 所以你的代码需要在dom之后加载一个标签。

jQuery ->
    $('#user_houses_place_name').autocomplete source: ['gani','money']

仅供参考 - 自动填充需要知道选项。因此,您需要使用库并将要提供的用户列表作为自动完成选项传递。

您需要确保在资产管道中或通过直接引用加载jQuery自动完成模块。

<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

这是rails,所以你可以简单地加载jquery-ui gem。但请确保加载了所需的jquery版本和ui库。

所有自动完成工作都是在javascript中完成的。因此,值将是您传递给javascript的数组。最简单的方法是使用gon gem(https://github.com/gazay/gon)轻松地将数据传递给javascript控制器。在rails控制器中,您将定义

gon.autocompleteUsers = User.all 

或您要在可用用户列表中过滤的任何条件。然后调用gon数组来填充值。