Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.81 KB | None | 0 0
  1. class AddDesignerToProducts < ActiveRecord::Migration[5.0]
  2.   def change
  3.     add_column :products, :designer_name, :string
  4.     Product.all.each do |product|
  5.       product.designer_name = product.designer
  6.       product.save!
  7.     end
  8.     remove_column :products, :designer, :string
  9.  
  10.     add_reference :products, :designer, foreign_key: true
  11.     Product.all.each do |product|
  12.       designer_names = product.designer_name.split(' ')
  13.       first_name = designer_names[0]
  14.       last_name = designer_names[1]
  15.  
  16.       last_name = "#{last_name} #{designer_names[2]}" if designer_names[2]
  17.  
  18.       selected_designer = Designer.find_by(first_name: first_name, last_name: last_name)
  19.       selected_designer ? product.update(designer_id: designer.id) : nil
  20.     end
  21.     remove_column :products, :designer_name, :string
  22.   end
  23. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement