rails使用正则表达式以逗号分隔的自动完成标记

god*_*yan 7 javascript regex tags autocomplete ruby-on-rails

我使用旧的auto_complete插件与gem上的taggable一起使用,试图基本上复制Stack Overflow本身的标记行为!我或多或少做了这个rails cast中描述的内容.对于单个标签,这很有用.但是,我真的想让它每次用户输入空格或逗号(就像在Stack Overflow上一样)时,自动完成将重新开始.我想有一些方法可以通过正则表达式做到这一点,但我不知道如何将这种行为应用到text_field(我想用JavaScript来"重启"自动完成,但不可否认我相当弱谈到JavaScript.这就是我的观点:

<%= text_field_with_auto_complete :business, :tags, {}, { :url => formatted_businesses_path(:js), :method => :get, :with => "'search=' + element.value" } %>
Run Code Online (Sandbox Code Playgroud)

我的控制器非常简单,只需保存特定业务的标签即可.

如果有人能指出我正确的方向(因为我不知道如何去做)我会非常感激.

chr*_*ley 10

我知道这是旧的,但为了重新创建这种行为,我使用了rails3-jquery-autocompleteacts-as-taggable-on.他们一起工作非常好,很容易.

// Model
class Foo < ActiveRecord::Base
  acts_as_taggable_on :tags
end

// Controller
class FoosController < ApplicationController
  autocomplete :tag, :name, :class_name => 'ActsAsTaggableOn::Tag'
  ...
end

// Routes
resources :foos do
  collection do
    get :autocomplete_tag_name
  end
end

//View
<% form_for :foo do |form| %>
  <%= form.label :tag_list, "Tags" %>
  <%= form.autocomplete_field :tag_list, autocomplete_tag_name_foos_path, :"data-delimiter" => ', ' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

希望能帮助别人.