Railsアプリに郵便番号辞書をインポートするrakeタスク
hokousya
hokousya
ATOMRSS
  • ソースコードID: 604
  • 登録日時: 2008/08/13 00:21
  • 最終更新日時: 2008/08/13 03:35
  • アクセス数: 1723
  • タグ:  ruby rails 郵便番号
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加
  • GoodJob
  • 10

GJ

説明

日本郵政が配布している全国の郵便番号データベースをデータベースにインポートする rake タスクです。一応実用に供するために作ったので、以下の工夫をしています。

・複数回出現する郵便番号は最初のものだけをインポートする。
・「以下に掲載がない場合」とか「(1丁目〜3丁目)」などという
 邪魔なテキストは削除してインポートする。
・ActiveRecordを使わずに直接SQLを発行しているので、比較的高速・省メモリ
・郵便番号を数値で保存するので、きっと検索が速いと信じたい(^^;

使い方は、まず以下の migration を使ってテーブルを作っておきます。主キーの名前を zip にしているのでご注意を。

class CreateZips < ActiveRecord::Migration
  def self.up
    create_table :zips, :primary_key => 'zip' do |t|
      t.integer :prefecture
      t.string  :city
      t.string  :street
    end
  end
 
  def self.down
    drop_table :zips
  end
end
そして日本郵政のWebサイトから全国の郵便番号データをダウンロードし、展開したファイルに含まれる KEN_ALL.CSV を RAILS_ROOT/db にコピーしてください。

郵便番号データのダウンロードページ
http://www.post.japanpost.jp/zipcode/dl/kogaki.html

あとは、以下のように rake を実行すればデータがインポートされます。

rake zip
なお、前述のとおり郵便番号は数値で保存しているので、検索時は郵便番号から余計なハイフンなどを削除したものでマッチさせてください。

以下のブログ記事に詳細説明とファインダを拡張したモデルなどを掲載しました。合わせてご参照くださいませ。

http://webos-goodies.jp/archives/51369852.html

ソースコード

コメント

前へ 1 次へ

プレゼン公開・共有サイト handsOut.jp チーム・マイナス6% - みんなで止めよう温暖化

ソースコードのブログパーツ

デフォルトのフォントサイズ
修飾
表示サイズ
px px
プレビュー (表示する)
下のプレビュー領域をクリックすると、ポップアップで全体を見ることができます。
パラメータが不正です

    GoodJobしたユーザ

    • hykw
    • 台北猫々

    ブックマークコメント

    関連するなにがし

    前へ 1 次へ

    タグ

    raketime machineイベントログfilesystemobjectdeveloperprogrammingprimenumberflexriatagged電卓分数逆ポーランド記法ポーランド記法jaxbdyndnsarraylistdeepcopyディープコピーobjectoutputstreambytearrayoutputstreamobjectinputstreambytearrayinputstreamiterator複数チェックボックスmultibytexencentos文字エンコーディングinit_connectcharacter-set-servercollation-serverdefault-character-setヘルパーメソッド動的メソッド呼び出しf:labelwsse2重登録防止prototype.js位置positionedoffsetscrolltoスクロールpositionlink_tocyclecheck_box_tagチュートリアルactive_formerror_messages_forハイライトバリデーションvalidate便利リストデコレーションメールデコメ非対応機種tilestext_field_tag一括複数情報etherealrtphexテキストデータ抽出validwhenリセット一括更新plop置換replacepcoslogmixisregソケットnet::telnetfopenmutexサンプルcalendar[linux][bash][シェルスクリプト][大容量]mobilerorrails2.1クリップボードclipboard横向きピラミッドs2jdbc-genjsonicお絵かきフルパス名抽出サブドメインサブドメイン名s2jdbc自動生成エンティティxhtml

    前へ 1 2 3 ... 8 次へ