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... ]