使用acts-as-taggable-on更改默认分隔符

act-as-taggable-on gem中的默认分隔符是逗号。 我想在整个Rails 3应用程序中将其更改为空格。 例如,tag_list应该像这样分配:

object.tag_list = "tagone tagtwo tagthree" 

而不是像这样:

 object.tag_list = "tagone, tagtwo, tagthree" 

更改分隔符的最佳方法是什么?

您需要在ActsAsTaggableOn :: TagList类中定义分隔符类变量

在初始化器中添加:

 ActsAsTaggableOn::TagList.delimiter = ' ' 

我不会在act-as-taggable-on中进行黑客攻击,只需在实现它的类上创建另一个方法:

 class MyClass < ActiveRecord::Base acts_as_taggable def human_tag_list self.tag_list.gsub(', ', ' ') end def human_tag_list= list_of_tags self.tag_list = list_of_tags.gsub(' ', ',') end end MyClass.get(1).tag_list # => "tagone, tagtwo, tagthree" MyClass.get(1).human_tag_list # => "tagone and tagtwo and tagthree" MyClass.get(1).human_tag_list = "tagone tagtwo tagthree"