【问题标题】:Merging tags with acts_as_taggable_on Rails gem使用acts_as_taggable_on Rails gem 合并标签
【发布时间】:2010-08-26 21:34:53
【问题描述】:

我在我的 Rails 应用程序中使用acts_as_taggable_on,我想就合并两个标签的最佳方式提出建议。

例如,如果我有一份食品记录列表,其中一些标记为“奶酪”,一些标记为“牛奶”,那么将这些标记组合成一个“乳制品”标记的最佳方法是什么?我应该只找到所有标记为“奶酪”和/或“牛奶”的记录,用新的“乳制品”标签标记这些记录,并删除“奶酪”和“牛奶”标签和标签,还是有更好的方法来这样做?

我查看了 gem 的文档和规范,但没有看到任何可以组合多个标签的专用方法。如果我采用上面建议的多步骤路线,如果其中一个步骤失败(如果某些记录 被标记为“乳制品”),我是否会冒任何弄乱标记的风险原因和“奶酪”标签被“删除”?

【问题讨论】:

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


    【解决方案1】:

    如果您想确保除非所有更改都成功,否则不会更改任何标签,请使用数据库事务。代码看起来像这样:

    Food.transaction do
      Food.tagged_with('milk', 'cheese').each do |food|
        food.tag_list -= ['milk', 'cheese']
        food.tag_list << 'dairy'
        food.save!
      end
    end
    

    【讨论】:

    • 这不是答案!!!这是合并标签的静态方式!在公共场合合并标签怎么样!!?
    猜你喜欢
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多