我正在使用旧的 auto_complete plugin结合acts as taggable on gem 试图基本上复制 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" } %>
我的 Controller 非常简单,只需保存特定业务的标签。
如果有人能指出正确的方向(因为我不确定如何去做),我将不胜感激。
最佳答案
我知道这是旧的,但为了重现这种行为,我使用了 rails3-jquery-autocomplete与 acts-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 %>
希望对某人有所帮助。
关于javascript - 使用正则表达式以逗号分隔的 Rails 自动完成标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486745/