Rails 3 - 如何使用几个db字段作为源自动完成?

时间:2011-06-07 13:05:32

标签: ruby-on-rails search field jquery-autocomplete

嘿伙计们!

详细

我正在使用 rails3-jquery-autocomplete gem(https://github.com/crowdint/rails3-jquery-autocomplete)作为我的搜索功能。

要实现搜索,我正在使用元搜索 gem。

问题

我的要求是在包含少量列的无线电模型上实现搜索。元搜索能够做到这一点,但自动完成宝石目前似乎仅限于一次仅从一个字段自动完成。我希望自动完成功能可以作为无线电模型的每个字段的来源。

此外,无线电模型中有一些外键,我想获得相应的值。

问题

你有这样的问题,或者你知道怎么面对吗?

我查看了stackoveflow中的所有问题,并尝试使用那个实现了自己功能的人的提交 - > Issue #15 on the gem github page

我需要另一种宝石或方法来实现这种自动完成功能,所以如果你有任何想法,请不要犹豫,让我知道。

THX

2 个答案:

答案 0 :(得分:1)

有几种选择,如何做这样的事情。 其中之一是获得一些js自动完成脚本,可以使用外部xml / json数据源。 我喜欢(并使用)这一个 - http://www.codeproject.com/KB/scripting/AutoSuggestControl.aspx

使用它,您需要做的是为某个控制器实现一些操作,它将使用“LIKE”式查询查询所需的所有数据源(获取所有以开头或包含给定参数的单词)并返回一切都像这样:

format.xml  { response.headers["Content-Type"] = "application/xml; charset=utf-8";
              render :inline => '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
                                "<listdata>#{@tags.join('|')}</listdata>" };

@tags这里是您查询(或一系列查询)所有关键字的数组。

您的模板将包含以下代码:

<script>
  var obj = new autosuggest("someid", "", "http://mysite.org/tags.xml?term=");
</script>

“someid”是搜索输入的“id”属性,“/ suggest.xml”是控制器/操作的路径,“term”是该操作的参数。 我希望这可以帮到你。

答案 1 :(得分:1)

最后,我使用了一些实现有趣内容的人的分支。但这不能正常工作,所以我分叉他的叉子,我修改了能够使用它。

如果你需要帮助从rails 3上的几个字段和表格自动完成,ruby 1.8.7然后你可以试试我的rails3-jquery-autocomplete gem =&gt; https://github.com/dbachet/rails3-jquery-autocomplete

没有支持mongoid,并且没有测试选项。

THX