これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

新規RailsアプリからレガシーなDBを参照する方法

今日一日の成果。

  • 新規でRailsアプリケーションを作ろうとしている
  • これから作るDBとは別のDBに格納されているテーブルを参照しなければならない
  • その既存テーブルでは複合主キーを使っている

という状況において、

  1. 既存テーブルにアクセスするためのRESTなWebサービスをRailsで作る
  2. ActiveResourceを使って上記Webサービスにアクセス

という解決法を手に入れた。

複合主キー下でActiveResourceからWebサービスへ検索するメモ
Foo.find("key1,key2,key3")

で、主キーを指定した検索になり、この場合、Webサービス側ではFoosController#show()が実行される。WebサービスへのリクエストURLは

http://hoge.com/foos/key1,key2,key3

となる模様。


また、

Foo.find(:all, :params => {:key1 => "value1", :key2 => "value2"})

で、条件を指定した検索になり、Webサービス側ではFoosController#index()が実行される。URLは

http://hoge.com/foos?key1=value1&key2=value2

となる。

参考資料

ActiveResource::Base