Last active
June 30, 2020 11:40
-
-
Save ksolvesnutra/0525e9f27340ffbc9c6e956530d4564b to your computer and use it in GitHub Desktop.
[issue#550] Script to update Articles related URLs in the content of various sections such as Products, Articles, Videos, Faqs, Studies Redirect-Pages.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
artic = [] | |
fa = [] | |
stud = [] | |
vid = [] | |
prod = [] | |
trnsf_pg = [] | |
Article.find_each do |art| | |
Article.where(" | |
content LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
content LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
content LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |article| | |
artic << article | |
end | |
Faq.where(" | |
answer LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
answer LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
answer LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |faq| | |
fa << faq | |
end | |
Study.where(" | |
brief_description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
brief_description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
brief_description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |study| | |
stud << study | |
end | |
Video.where(" | |
description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |video| | |
vid << video | |
end | |
Product.where(" | |
description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
highlights LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
highlights LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
highlights LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
suggested_use LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
suggested_use LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
suggested_use LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
supplement_facts LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
supplement_facts LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
supplement_facts LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
quality LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
quality LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
quality LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
verbiage LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
verbiage LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
verbiage LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |product| | |
prod << product | |
end | |
TransferPage.where(" | |
url LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
url LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
url LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |transfer_page| | |
trnsf_pg << transfer_page | |
end | |
end | |
[ artic.uniq.count, fa.uniq.count, stud.uniq.count, vid.uniq.count, prod.uniq.count, trnsf_pg.uniq.count ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Article.find_each do |art| | |
puts "Current Article: '#{art.title}'"; | |
puts "Article id: '#{art.id}'"; | |
Article.where(" | |
content LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
content LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
content LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |article| | |
article.update_attributes( | |
content: article.content.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated article: { #{article.title}, #{article.id} }"; | |
end | |
Faq.where(" | |
answer LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
answer LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
answer LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |faq| | |
faq.update_attributes( | |
answer: faq.answer.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated faq: { #{faq.question}, #{faq.id} }"; | |
end | |
Study.where(" | |
brief_description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
brief_description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
brief_description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |study| | |
study.update_attributes( | |
brief_description: study.brief_description.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated study: { #{study.title}, #{study.id} }"; | |
end | |
Video.where(" | |
description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |video| | |
video.update_attributes( | |
description: video.description.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated video: { #{video.title}, #{video.id} }"; | |
end | |
Product.where(" | |
description LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
description LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
description LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
highlights LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
highlights LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
highlights LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
suggested_use LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
suggested_use LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
suggested_use LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
supplement_facts LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
supplement_facts LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
supplement_facts LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
quality LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
quality LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
quality LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' OR | |
verbiage LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
verbiage LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
verbiage LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |product| | |
product.update_attributes( | |
description: product.description.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}"), | |
highlights: product.highlights.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}"), | |
suggested_use: product.suggested_use.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}"), | |
supplement_facts: product.supplement_facts.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}"), | |
quality: product.quality.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}"), | |
verbiage: product.verbiage.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated product: { #{product.name}, #{product.id} }"; | |
end | |
TransferPage.where(" | |
url LIKE '%articles?q%5Barticle_category_id_eq%5D=1%' OR | |
url LIKE '%articles?q%5Barticle_category_name_eq%5D=Clinical+Reference%' OR | |
url LIKE '%#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}%' | |
").each do |transfer_page| | |
transfer_page.update_attributes( | |
url: transfer_page.url.gsub("articles?q%5Barticle_category_id_eq%5D=1", "article/clinical-reference").gsub("articles?q%5Barticle_category_name_eq%5D=Clinical+Reference", "article/clinical-reference").gsub("#{art.article_category.name.parameterize}/#{art.id}-#{art.title.parameterize}", "#{art.article_category.name.parameterize}/#{art.slug}") | |
) | |
puts "updated transfer_page: { #{transfer_page.name}, #{transfer_page.id} }"; | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment