如何将pg_search_scope与 rails-autocomplete-jquery 一起使用



我同时使用pg_search和rails-jquery-autocomplete

我有一个搜索范围,由 pg_search 提供支持,其使用方式如下:Node.node_search(query) .

我尝试将该方法node_searchNode控制器上的autocomplete调用一起使用,如下所示:

autocomplete :node, :node_search

但是我收到一个错误,即Node上没有名为node_search的列。

我也尝试做autocomplete :node, :name, scope: :node_search,但这只查询列node.name.它实际上并没有像我想要的那样将搜索查询传递给我的Node.node_search

基本上,我想发生的是,每当有人键入 1 或 2 个字符时,我希望它将该查询发送到Node.node_search,而不是检查name列或Node模型上的任何其他列(现在成功接受查询)。

我如何实现这一点?

编辑 1

理想情况下,我希望能够做到这一点,而不必在 JS 中执行此操作。如果不存在,我想我可以使用JS。但我更愿意只在实际的rails-jquery-autocomplete gem中使用一些东西。

您应该向node_search路由发出自动完成发送请求:

$("your autocomplete").autocomplete({
  source: function (request, response) {
    $.ajax({
        url: "your endpoint url",
        data: { query: request },
        success: function (data) {
            $this.val(data);
        },
        error: function () {
            alert('oops')
        }
    });
});

});'

你可以试试:

autocomplete :node, :node_search, scopes: [:named_scope_1, :named_scope_2, ...]

因为它接收范围数组并将它们链接起来。

必须在模型中定义范围:

scope :prospects, -> ()    { where prospect: true }

相关内容

  • 没有找到相关文章

最新更新