« Ruby on Rails 2.3でテストを実行すると、undefined method `use_transactional_fixtures='というエラーになるときの対策 | メイン | Ruby on Railsで複数のデータベースを使用する方法 »

ActiveRecordの設定をDRYにするDrySQLライブラリ

実践 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

これで、テーブルの設計を変更したときに、ソースコードを修正する必要がなくなる。

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/955

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年04月23日 12:09に投稿されたエントリーのページです。

ひとつ前の投稿は「Ruby on Rails 2.3でテストを実行すると、undefined method `use_transactional_fixtures='というエラーになるときの対策」です。

次の投稿は「Ruby on Railsで複数のデータベースを使用する方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35