Ruby on rails RubyonRails:如何删除未使用的标记,并将其作为可标记的对象?
我已经按照config/initializers/acts_as_taggable_on.rb中的说明进行了操作Ruby on rails RubyonRails:如何删除未使用的标记,并将其作为可标记的对象?,ruby-on-rails,ruby,ruby-on-rails-4,acts-as-taggable-on,Ruby On Rails,Ruby,Ruby On Rails 4,Acts As Taggable On,我已经按照config/initializers/acts_as_taggable_on.rb中的说明进行了操作 ActsAsTaggableOn.remove_unused_tags = true 然而,它没有起作用。我还尝试了以下类似于其他宝石的方法: ActsAsTaggableOn.setup do |config| config.remove_unused_tags = true end 它也不起作用。也许它需要包含一个模块? 任何帮助都将不胜感激。这是我的错误。我认为它会删除
ActsAsTaggableOn.remove_unused_tags = true
然而,它没有起作用。我还尝试了以下类似于其他宝石的方法:
ActsAsTaggableOn.setup do |config|
config.remove_unused_tags = true
end
它也不起作用。也许它需要包含一个模块?
任何帮助都将不胜感激。这是我的错误。我认为它会删除所有标记计数为0的现有标记。它会在从关系中删除它们。我有一个rake任务
# lib/tasks/tag_cleaner.rake
# run using 'RAILS_ENV=development rake tag_cleaner:delete_unused'
namespace :tag_cleaner do
desc "delete unused tags"
task :delete_unused => :environment do
ActsAsTaggableOn::Tag.joins(
"LEFT JOIN taggings on taggings.tag_id = tags.id").where("taggings.id is null").delete_all
end
end
我需要的时候就用
或
如果你需要双管齐下。Ie你像我一样到处玩,从标签上删除了一些,从标签上删除了一些,需要清洗两面
# lib/tasks/tag_cleaner.rake
# run using 'RAILS_ENV=development rake tag_cleaner:delete_unused'
namespace :tag_cleaner do
desc "delete unused tags"
task :delete_unused => :environment do
ActsAsTaggableOn::Tag.joins(
"LEFT JOIN taggings on taggings.tag_id = tags.id").where("taggings.id is null").delete_all
ActsAsTaggableOn::Tagging.joins(
"LEFT JOIN tags on tags.id = taggings.tag_id").where("tags.id is null").delete_all
end
end