Associare i codici di chiamata di un paese all'elenco delle tabelle di paese

Sto realizzando un progetto di binari che richiede un tavolo di campagna. Mi piace anche includere i codici di chiamata del paese in loro. Ho trovato aiuto nella creazione del tavolo da paese da github e sembra così:

class CreateCountries < ActiveRecord::Migration def change create_table :countries do |t| t.string :name t.string :printable_name t.string :iso2, :size => 2 t.string :iso3, :size => 3 t.integer :numcode t.timestamps end end Country.reset_column_information Country.create(:iso2 => 'AF', :name => 'AFGHANISTAN', :printable_name => 'Afghanistan', :iso3 => 'AFG', :numcode => '004') Country.create(:iso2 => 'AL', :name => 'ALBANIA', :printable_name => 'Albania', :iso3 => 'ALB', :numcode => '008') Country.create(:iso2 => 'DZ', :name => 'ALGERIA', :printable_name => 'Algeria', :iso3 => 'DZA', :numcode => '012') 

e poi ho anche trovato un elenco di codici di chiamata per paese e sono riuscito a metterli in un foglio di calcolo:

 Afghanistan 93 Albania 355 Algeria 213 

Quello che mi piacerebbe ad un modo veloce di aderire al codice di chiamata nell'elenco precedente in modo da sembrare così:

 Country.create(:iso2 => 'AF', :name => 'AFGHANISTAN', :printable_name => 'Afghanistan', :iso3 => 'AFG', :numcode => '004' :call_code => 93) 

Qualsiasi soluzione veloce per raggiungere questo objective utilizzando Excel o OpenOffice o MySQL? Fintanto che non devo metterlo manualmente.

  1. Copiare le linee di codice Country.create in Excel, ad esempio iniziando in A1.
  2. Copia l'elenco dei codici in Excel e, se necessario, suddivisi in due colonne (ad esempio con text in colonne).
  3. Nome il risultato (dire CArray ).
  4. In B1 metti: =FIND("printable_name => '",A1)+19 .
  5. In C1 messo:

     =SUBSTITUTE(A1,")"," :call_code => "&VLOOKUP(MID(A1,B1,FIND("'",A1,B1)-B1),cArray,2,0)&")") 
  6. Copia B1: C1 in giù per adattarsi.

  7. Copia quanto ColonnaC indietro nel tuo codice come adatto.

cArray non deve essere nello stesso foglio.