rails:683
From: Hiroshi Takagi <gollum@h...>
Date: Thu, 17 Nov 2005 01:56:54 +0900
Subject: [rails:683] Re: 同じ内容のbelongs_to を 複数の model に
高木宏です。 向井さん、ご指導ありがとうございます。 On Wed, 16 Nov 2005 23:52:13 +0900 Jun Mukai <mukai@j...> wrote: > > まったく同じ内容の belongs_to を > > 複数の model に入れるのはどういう方法があるでしょうか。 > > Module#included が使えるのではないでしょうか。 > > たとえば、次のようなコードが考えられると思います。 > > module BelongsToUser > def self.included(c) > c.belongs_to :created_by, > :class_name => "User", > :foreign_key => "created_by_uid" この self.included(c) を知らなかったので、 リファレンスをひっくり返してしばし悩みました。 こういうふうに使うものだったのですね。 > class MyData < ActiveRecord::Base > include BelongsToUser > end これでうまくいきました。 ありがとうございました。 belongs_to だけでなく、定番のvalidates_ なんかにも応用できますね。 Rails/ActiveRecord 系では、 id, name, ... のようなカラム構成ではじまり、 論理的なprimary key は name であることが多いので、 name に validates_uniqueness_of をかけることがほとんどです。 このあたりの定型的な validation も、この手法で include できそうです。 -- 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... ]