1

我正在创建一个需要国家/地区表的 Rails 项目。我还喜欢在其中包含国家/地区呼叫代码。我找到了从 GitHub 创建国家表的帮助,它看起来像这样:

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')

然后我还找到了国家呼叫代码列表并设法将它们放入电子表格中:

Afghanistan 93
Albania 355
Algeria 213

我想要一种将调用代码加入上述列表的快速方法,如下所示:

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

任何使用 Excel 或 OpenOffice 电子表格或 MySQL 实现此目的的快速解决方案?

只要我不必手动输入。

4

1 回答 1

0
  1. 将您Country.create的代码行复制到 Excel 中,例如从 A1 开始。
  2. 将您的代码列表复制到 Excel 中,并在必要时分成两列(例如,使用文本到列)。
  3. 命名结果(比如CArray)。
  4. 在 B1 中输入:=FIND("printable_name => '",A1)+19.
  5. 在 C1 中:

    =SUBSTITUTE(A1,")"," :call_code => "&VLOOKUP(MID(A1,B1,FIND("'",A1,B1)-B1),cArray,2,0)&")")  
    
  6. 向下复制 B1:C1 以适应。

  7. 尽可能多地将 ColumnC 复制回您的代码中。

cArray不必在同一张纸上。

于 2013-08-23T21:31:50.137 回答