小江戸らぐRuby on Rails 勉強会

Rails の Addressbook で住所録を色々やってみるWebアプリのお勉強

  • 郵便番号から住所を自動入力する
  • 更新履歴をプラグイン Acts_as_Versioned を使って管理する
  • 住所録をCSVで出力する
  • 住所録に新しいカラムを追加する

ってのを古川さんの資料を使って勉強した。

以下、メモ
$ rails AddressBook
$ cd AddressBook
$ ruby script/generate scaffold Card name:string zip:string pref:string add1:string add2:string tel:string
$ rake db:create
$ rake db:migrate

  • 郵便番号を入力してフォームの住所欄を自動入力する

これを使ってみる
AjaxZip 2.0 - Ajax郵便番号→住所自動入力フォーム(CGI不要版
http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html


$ wget http://www.kawa.net/works/ajax/ajaxzip2/dist/
ajaxzip2-20081102.zip
$ unzip ajaxzip2-20081102.zip
$ cd ajaxzip2/work/
$ wget http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/ken_all.lzh
$ lha x ken_all.lzh
$ perl csv2jsonzip.pl ken_all.csv
$ cd ../..


$ cp -p ajaxzip2/ajaxzip2.js public/javascripts/
$ mkdir public/ajaxzip2
$ cp -pr ajaxzip2/data/ public/ajaxzip2/

app/views/cards/new.html.erb app/views/cards/edit.html.erb を修正

<p>
  <%= f.label :zip %><br />
    <input type="text" name="card[zip]" size="10" maxlength="8"
     id="card_zip" value="<%=h @card.zip %>"
     onKeyUp="AjaxZip2.zip2addr(this,'card[pref]','card[add1]');"><br>
  <!-- <%= f.text_field :zip %> -->
</p>

メモ:
value="<%=h @card.zip %>" としておくと以前に入力した郵便番号を初期値に設定できる。


〜とりあえずここまで〜


※次回までの宿題:
ユーザを複数登録して、住所録データを共有しつつ各ユーザ毎の住所録のデータセットを用意する仕組みを作る。