[前][次][番号順一覧][スレッド一覧]

rails:679

From: Hiroshi Takagi <gollum@h...>
Date: Wed, 16 Nov 2005 21:40:38 +0900
Subject: [rails:679] 同じ内容のbelongs_to を 複数の model に

高木宏です。
(正弘さんがいらっしゃるのでこれからはフルネームで :-)

まったく同じ内容の belongs_to を
複数の model に入れるのはどういう方法があるでしょうか。

DBで業務アプリケーションを作る時に、我流ですが、
まず、users テーブルに id, name, password などを定義・登録し、
利用ユーザーにログインさせたあと、
ユーザーのテーブルのレコードへのアクションを記録するために、

  deleted        boolean       default false,
  created_by_uid integer       REFERENCES users (id),
  updated_by_uid integer       REFERENCES users (id),
  deleted_by_uid integer       REFERENCES users (id),       

の4 つのカラムは、必ず、各テーブルに定義しています。
(マスター系のテーブルはレコードは
 決して削除せずに削除フラグ(deleted)をtrue にする。)

上は PostgreSQL での定義例です。

こういう定義をすると users に対して参照定義をしますので、
各model クラスには、

  belongs_to  :created_by,
              :class_name  => "User",
              :foreign_key => "created_by_uid"
  belongs_to  :updated_by,
              :class_name  => "User",
              :foreign_key => "updated_by_uid"
  belongs_to  :deleted_by,
              :class_name  => "User",
              :foreign_key => "deleted_by_uid"   

というbelongs_to を三行必ず定義することにります。

これって、この三行の内容を別に定義しておいて、
各 model_class.rb に共通定義する方法はないでしょうか。
(マスターテーブルのアプリを書いててあきてきました(^^;;
  DRY に反するし…。)

Ruby とつきあいが長くなってきたくせに
いまだにMix-in, 継承あたりがよくわかっておりませんで :-(

アドバイスよろしくお願いします。

-- 
Hiroshi Takagi <gollum@h...>



--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

[前][次][番号順一覧][スレッド一覧]

->     679 2005-11-16 13:40 [gollum@h...         ] 同じ内容のbelongs_to を 複数の model に 
       681 2005-11-16 15:52 ┗[mukai@j...          ]                                       
       683 2005-11-16 17:56  ┗[gollum@h...         ]