0

我将select2-rails 3.5.7ActiveAdmin 0.6.0acts_as_taggable_on 3.1.1一起使用。

我想使用分号作为标记分隔符,所以我这样做:

# config/initializers/acts_as_taggable_on.rb
ActsAsTaggableOn.delimiter = ";"

# app/admin/model.rb
form do |f|
  f.inputs do
    f.input :keyword_list, as: :select2_tags
  end
end

现在,在告诉acts_as_taggable_on 使用分号作为标记分隔符之后,我还需要告诉select2 也这样做——通过ActiveAdmin。

标签上的select2 文档说可以为AutoTokenization指定tokenSeparators列表。

如何告诉 ActiveAdmin 告诉 select2 使用分号而不是逗号?

4

1 回答 1

0

请参阅https://github.com/argerim/select2-rails/issues/87

我很久以前衍生Select2TagsInput的,忘记在哪里看,它都在那里......为了你的兴趣:Formtastic::Inputs::StringInput

# app/inputs/select2_tags_input.rb
class Select2TagsInput < Formtastic::Inputs::StringInput
  def input_html_options
    default_options = { width: '76%', tags: ActsAsTaggableOn::Tag.all.map(&:name) }
    create_options = options[:create_options] || {}
    create_options.merge!(default_options)
    data = { create_options: create_options }
    super.merge(:class => 'select2-input', data: data)
  end
end

要指定自定义创建选项,我会

f.input :keyword_list, as: :select2_tags, :create_options => { :tokenSeparators => [";"] }

现在将正确呈现为

<input class="select2-input" data-create-options="{'tokenSeparators':[';'], 'tags':[...]}" id="item_keyword_list" name="item[keyword_list]" type="text" value="BlahBlah" />
于 2014-06-11T09:50:27.310 回答