Created
August 21, 2020 11:48
-
-
Save ksolvesnutra/fc15bf37fb2298c28917f0d3f74a121c to your computer and use it in GitHub Desktop.
[issue#548] Script to update Products and Product Category related URLs in the content of various sections such as Products, Articles, Videos, Faqs, Studies Redirect-Pages, Sliding-Images, Content.
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
artical_arr = [] | |
faq_arr = [] | |
study_arr = [] | |
video_arr = [] | |
product_arr = [] | |
trnsf_pg = [] | |
sliding_img = [] | |
cont_arr = [] | |
Product.find_each do |prod| | |
Article.where(" | |
content ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
content ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |article| | |
artical_arr << article | |
end | |
Faq.where(" | |
answer ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
answer ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |faq| | |
faq_arr << faq | |
end | |
Study.where(" | |
brief_description ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
brief_description ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |study| | |
study_arr << study | |
end | |
Video.where(" | |
description ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
description ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |video| | |
video_arr << video | |
end | |
Product.where(" | |
description ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
description ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
highlights ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
highlights ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
suggested_use ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
suggested_use ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
supplement_facts ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
supplement_facts ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
quality ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
quality ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
verbiage ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
verbiage ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |product| | |
product_arr << product | |
end | |
TransferPage.where(" | |
url ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
url ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |transfer_page| | |
trnsf_pg << transfer_page | |
end | |
SlidingImage.where(" | |
url ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
url ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |slid_img| | |
sliding_img << slid_img | |
end | |
Content.where(" | |
body ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
body ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |content| | |
cont_arr << content | |
end | |
end | |
ProductCategory.find_each do |prod_cat| | |
Article.where(" | |
content ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |article| | |
artical_arr << article | |
end | |
Faq.where(" | |
answer ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |faq| | |
faq_arr << faq | |
end | |
Study.where(" | |
brief_description ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |study| | |
study_arr << study | |
end | |
Video.where(" | |
description ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |video| | |
video_arr << video | |
end | |
Product.where(" | |
description ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
highlights ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
suggested_use ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
supplement_facts ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
quality ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
verbiage ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |product| | |
product_arr << product | |
end | |
TransferPage.where(" | |
url ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |transfer_page| | |
trnsf_pg << transfer_page | |
end | |
SlidingImage.where(" | |
url ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |slid_img| | |
sliding_img << slid_img | |
end | |
Content.where(" | |
body ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |content| | |
cont_arr << content | |
end | |
end | |
[ artical_arr.uniq.count, faq_arr.uniq.count, study_arr.uniq.count, video_arr.uniq.count, product_arr.uniq.count, trnsf_pg.uniq.count, sliding_img.uniq.count, cont_arr.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
Product.find_each do |prod| | |
puts "Current Product: '#{prod.name}'"; | |
puts "Product id: '#{prod.id}'"; | |
Article.where(" | |
content LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
content LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |article| | |
article.update_attributes( | |
content: article.content.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated article: { #{article.title}, #{article.id} }"; | |
end | |
Faq.where(" | |
answer LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
answer LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |faq| | |
faq.update_attributes( | |
answer: faq.answer.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated faq: { #{faq.question}, #{faq.id} }"; | |
end | |
Study.where(" | |
brief_description LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
brief_description LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |study| | |
study.update_attributes( | |
brief_description: study.brief_description.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated study: { #{study.title}, #{study.id} }"; | |
end | |
Video.where(" | |
description LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
description LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |video| | |
video.update_attributes( | |
description: video.description.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated video: { #{video.title}, #{video.id} }"; | |
end | |
Product.where(" | |
description LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
description LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
highlights LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
highlights LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
suggested_use LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
suggested_use LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
supplement_facts LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
supplement_facts LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
quality LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
quality LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' OR | |
verbiage LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
verbiage LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |product| | |
product.update_attributes( | |
description: product.description.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}"), | |
highlights: product.highlights.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}"), | |
suggested_use: product.suggested_use.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}"), | |
supplement_facts: product.supplement_facts.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}"), | |
quality: product.quality.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}"), | |
verbiage: product.verbiage.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated product: { #{product.name}, #{product.id} }"; | |
end | |
TransferPage.where(" | |
url LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
url LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |transfer_page| | |
transfer_page.update_attributes( | |
url: transfer_page.url.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated transfer_page: { #{transfer_page.name}, #{transfer_page.id} }"; | |
end | |
SlidingImage.where(" | |
url LIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
url LIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |slid_img| | |
slid_img.update_attributes( | |
url: slid_img.url.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated sliding_img: { #{slid_img.id} }"; | |
end | |
Content.where(" | |
body ILIKE '%products/#{prod.id}-#{prod.name.parameterize}%' OR | |
body ILIKE '%products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}%' | |
").each do |content| | |
content.update_attributes( | |
body: content.body.gsub("products/#{prod.id}-#{prod.name.parameterize}", "products/#{prod.slug}").gsub("products/#{prod.id}-#{CGI.escape(prod.name.downcase.gsub(" ", "-"))}", "products/#{prod.slug}") | |
) | |
puts "updated content: { #{content.id} }"; | |
end | |
end | |
ProductCategory.find_each do |prod_cat| | |
puts "Current Product Category: '#{prod_cat.name}'"; | |
puts "Product Category id: '#{prod_cat.id}'"; | |
Article.where(" | |
content LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |article| | |
article.update_attributes( | |
content: article.content.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated article: { #{article.title}, #{article.id} }"; | |
end | |
Faq.where(" | |
answer LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |faq| | |
faq.update_attributes( | |
answer: faq.answer.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated faq: { #{faq.question}, #{faq.id} }"; | |
end | |
Study.where(" | |
brief_description LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |study| | |
study.update_attributes( | |
brief_description: study.brief_description.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated study: { #{study.title}, #{study.id} }"; | |
end | |
Video.where(" | |
description LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |video| | |
video.update_attributes( | |
description: video.description.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated video: { #{video.title}, #{video.id} }"; | |
end | |
Product.where(" | |
description LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
highlights LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
suggested_use LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
supplement_facts LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
quality LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' OR | |
verbiage LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |product| | |
product.update_attributes( | |
description: product.description.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}"), | |
highlights: product.highlights.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}"), | |
suggested_use: product.suggested_use.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}"), | |
supplement_facts: product.supplement_facts.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}"), | |
quality: product.quality.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}"), | |
verbiage: product.verbiage.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated product: { #{product.name}, #{product.id} }"; | |
end | |
TransferPage.where(" | |
url LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |transfer_page| | |
transfer_page.update_attributes( | |
url: transfer_page.url.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated transfer_page: { #{transfer_page.name}, #{transfer_page.id} }"; | |
end | |
SlidingImage.where(" | |
url LIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |slid_img| | |
slid_img.update_attributes( | |
url: slid_img.url.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated sliding_img: { #{slid_img.id} }"; | |
end | |
Content.where(" | |
body ILIKE '%/products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}%' | |
").each do |content| | |
content.update_attributes( | |
body: content.body.gsub("products?q%5Bproduct_category_id_eq%5D=#{prod_cat.id}", "products/category/#{prod_cat.slug}") | |
) | |
puts "updated content: { #{content.id} }"; | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment