3

アプリにモデルがあります:

クラス コメント < ActiveRecord::Base

belongs_to :commentable, :polymorphic => true

終わり

class Project < ActiveRecord::Base

has_many :discussions, :dependent => :destroy
has_many :tickets, :dependent => :destroy

終わり

class Discussion < ActiveRecord::Base

has_many :comments, :as => :commentable, :dependent => :destroy

終わり

class Ticket < ActiveRecord::Base

has_many :comments, :as => :commentable, :dependent => :destroy

終わり

すべて正常に動作しますが、commentable、つまり comment.commentable.project を介してコメントからプロジェクトを取得するのはあまり便利ではない場合があります。Comment モデルで has_one プロジェクトを作成する方法はありますか?

4

1 に答える 1

4

クラスに次のメソッドを追加しますComment

def project
  self.commentable ? self.commentable.project : nil
end

これにより、 のすべての魔法がなくても同じ結果が得られますActivRecord

于 2011-09-20T05:42:02.883 に答える