『実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック』にDrySQLというライブラリが紹介されていた。
DrySQLを使うと、スキーマ情報を元にテーブルのリレーションシップや検証ルールを自動的に設定してくれる。
たとえば、従来は次のように設定する必要があった。
(DrySQLのサイトの例より)
class Employee < ActiveRecord::Base
set_table_name "EMP123"
set_primary_key "EMP_REF_ID"
belongs_to :department, :foreign_key=>'DEP_NAME'
has_many :projects, :foreign_key=>'PROJECT_NAME'
has_one :location
has_many :whatevers, :through=>projects
validates_length_of :NAME, :allow_nil=>true, :maximum=>20
validates_numericality_of :EMP_REF_ID, :allow_nil=>false, only_integer=>true
end
DrySQLを使うと、次のように簡略化できる。
残りの設定は、DrySQLが自動的に設定してくれるのだ。
class Employee < ActiveRecord::Base
set_table_name "EMP123"
end
これで、テーブルの設計を変更したときに、ソースコードを修正する必要がなくなる。