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

rails:681

From: Jun Mukai <mukai@j...>
Date: Wed, 16 Nov 2005 23:52:13 +0900
Subject: [rails:681] Re: 同じ内容のbelongs_to を 複数の model に

向井という者です。

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

Module#included が使えるのではないでしょうか。

たとえば、次のようなコードが考えられると思います。

module BelongsToUser
  def self.included(c)
    c.belongs_to  :created_by,
                  :class_name  => "User",
                  :foreign_key => "created_by_uid"
    c.belongs_to  :updated_by,
                  :class_name  => "User",
                  :foreign_key => "updated_by_uid"
    c.belongs_to  :deleted_by,
                  :class_name  => "User",
                  :foreign_key => "deleted_by_uid"
  end
end

class MyData < ActiveRecord::Base
  include BelongsToUser
end

BelongsToUser が include されたときに included が呼ばれ、引数として 
include したクラスオブジェクト(この場合は MyData)が入ります。

ほかにもモジュール関数なんかを駆使する方法が考えられると思いますが、
included を使うのが一番楽なのではないかと思います。

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