将组添加到自动完成

时间:2014-08-13 15:43:33

标签: jquery ruby-on-rails autocomplete

我需要将组添加到rails中已创建的自动完成下拉列表中。我不知道从哪里开始,我甚至不确定将它称为“群组”是否合适但我必须看起来像我发布的图片。如果有人能够至少指出我正确的方向开始,我将非常感激。

http://imgur.com/XLYzeKa

2 个答案:

答案 0 :(得分:0)

我认为,您可以在类型(名词和动词)的句子表中添加枚举字段,或者如果句子可能同时具有两种类型,则可以为类型添加模型。

之后,您可以单独选择名词和动词,并制作像{ nouns: array_of_nouns, verbs: array_of_verbs }这样的哈希值,并将其发送到您的JavaScript,您可以在两个单独的数组中进行搜索。

此外,你可以使用哈希而不是数组和第一个字母组的句子来加速搜索。例如,如果你有名词' rreactrubyruby-on-railsjavascript,您的hash_of_nouns就像{ 'j' => [ 'javascript' ], 'r' => ['ruby', 'react', 'ruby-on-rails', 'r'] }。在用户输入的第一个字符之后,您可以获取数组并在其中搜索。大量数据比简单array_of_nouns要快得多。

答案 1 :(得分:0)

此解决方案适用于我:

  • 要在自动填充查询中解决区分大小写,请创建要应用自动填充的 fieldname 索引(以便查询为BINARY):

<强>#分贝/迁移/ ... AddIndexFieldnameToTablename

def change
  add_index :tablename, :fieldname
end
  • 要解决灌浆值,请使用范围

<强>#应用程序/控制器/ yourtablenames_controller.rb

autocomplete :tablename, :fieldname, scopes: [:scope_rule_name]

<强>#应用程序/模型/ yourtablename.rb

scope :scope_rule_name, -> {group :fieldname}

关于如何为rails4应用自动填充功能,我已按照this指南进行操作。