Ruby on Rails problemas para rodar migrações com acentos e caracteres especiais

Se você criar uma migração para popular dados no banco de dados e as strings contiverem acentos ou caracteres especiais é bem provavelmente que você vai ter alguns erros de parse no código Ruby:

Por exemplo:

class PopulateTests < ActiveRecord::Migration
  def up
    data = [['Saúde', 'Bla bla bla'], ['Cabeça', 'Ble ble ble'], ['João', 'Belipx Blopx']]
    data.each do |item|
      test = Test.create(:name => item[0])
      test.save
    end
  end
 
  def down
    Test.delete_all
  end
end

Normalmente essa migração vai dar problema para rodar, devido aos caracteres de acentos e outros.

Para resolver isso bastar colocar no começo da sua migração: #encoding: UTF-8
Ficando o arquivo assim:

#encoding: UTF-8
 
class PopulateTests < ActiveRecord::Migration
  def up
    data = [['Saúde', 'Bla bla bla'], ['Cabeça', 'Ble ble ble'], ['João', 'Belipx Blopx']]
    data.each do |item|
      test = Test.create(:name => item[0])
      test.save
    end
  end
 
  def down
    Test.delete_all
  end
end
Posted in Ruby on Rails by patrickespake at julho 5th, 2012.
Tags: , , , , , , , , , ,

Leave a Reply

 Assinar RSS Feed