【问题标题】:Changing the default delimiter with acts-as-taggable-on使用acts-as-taggable-on 更改默认分隔符
【发布时间】:2011-01-04 08:08:08
【问题描述】:

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

object.tag_list = "tagone tagtwo tagthree"

而不是这样:

object.tag_list = "tagone, tagtwo, tagthree"

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

【问题讨论】:

    标签: ruby-on-rails acts-as-taggable-on


    【解决方案1】:

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

    在初始化器中添加:

    ActsAsTaggableOn::TagList.delimiter = ' '
    

    【讨论】:

    • 太棒了,这正是我所需要的。
    • 在最新版本中:ActsAsTaggableOn.delimiter = ' '
    【解决方案2】:

    我不会在acts-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"
    

    【讨论】:

    • 这不适用于我的应用程序,因为用户将通过文本字段(例如 &lt;%= f.text_field :tag_list %&gt;)分配 tag_list,我希望他们能够输入空格而不是逗号分隔标签。但这是一个很好的解决方案,可以在创建标签后处理它们的呈现。
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多