Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AddDesignerToProducts < ActiveRecord::Migration[5.0]
- class Product < ActiveRecord::Base
- end
- def self.up
- rename_column :products, :designer, :designer_name
- add_reference :products, :designer, foreign_key: true
- Product.reset_column_information
- Product.find_each do |product|
- designer_names = product.designer_name.split(' ')
- first_name = designer_names[0]
- last_name = designer_names[1]
- last_name = "#{last_name} #{designer_names[2]}" if designer_names[2]
- selected_designer = Designer.find_by(first_name: first_name, last_name: last_name)
- selected_designer ? product.update(designer_id: selected_designer.id) : nil
- end
- remove_column :products, :designer_name, :string
- end
- def self.down
- add_column :products, :designer_name, :string
- Product.reset_column_information
- Product.find_each do |product|
- binding.pry
- designer_name = Designer.find(product.designer_id)&.full_name
- product.update(designer_name: designer_name)
- end
- remove_reference :products, :designer, foreign_key: true
- rename_column :products, :designer_name, :designer
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement