首页 文章

has_one:通过多态 - 是否可能?

提问于
浏览
3

我的应用程序中有模型:

class Comment <ActiveRecord :: Base

belongs_to :commentable, :polymorphic => true

结束

class Project <ActiveRecord :: Base

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

结束

课堂讨论<ActiveRecord :: Base

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

结束

class Ticket <ActiveRecord :: Base

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

结束

一切正常,但有时通过评论,即comment.commentable.project从评论中获取项目并不是很方便 . 有没有办法在Comment模型中制作has_one项目?

1 回答

  • 4

    我会将以下方法添加到您的类 Comment

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

    这将给你相同的结果,没有 ActivRecord 的所有魔力 .

相关问题