Class: Jobs::MigrateTaggingPlugin
- Defined in:
- app/jobs/onceoff/migrate_tagging_plugin.rb
Instance Method Summary collapse
Methods inherited from Onceoff
enqueue_all, #execute, name_for, #running_key_name
Methods inherited from Base
acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, #execute, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately
Instance Method Details
#execute_onceoff(args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/jobs/onceoff/migrate_tagging_plugin.rb', line 5 def execute_onceoff(args) = TopicCustomField.where(name: "tags").select("DISTINCT value").all.map(&:value) tag_id_lookup = Tag .create(.map { |tag_name| { name: tag_name } }) .inject({}) do |h, v| h[v.name] = v.id h end TopicCustomField .where(name: "tags") .find_each do |tcf| TopicTag.create( topic_id: tcf.topic_id, tag_id: tag_id_lookup[tcf.value] || Tag.find_by_name(tcf.value).try(:id), ) end end |