Skip to content

Instantly share code, notes, and snippets.

@ksolvesnutra
Last active June 30, 2020 11:40
Show Gist options
  • Save ksolvesnutra/0525e9f27340ffbc9c6e956530d4564b to your computer and use it in GitHub Desktop.
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.
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 ]
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