Mongoid 3 でポリモーフィック モデルの親にアクセスする方法はありますか? こんなご縁があります
class Project
...
field "comments_count", :type => Integer, :default => 0
has_many :comments, :as => :commentable
...
end
class Comment
...
field "status"
belongs_to :commentable, :polymorphic => true
before_validation :init_status, :on => :create
after_create :increase_count
def inactivate
self.status = "inactive"
decrease_count
end
private
def init_status
self.status = 'active'
end
def increase_count()
@commentable.inc(:comments_count, 1)
end
def decrease_count()
@commentable.inc(:comments_count, -1)
end
...
end
comments_count
コメントが非アクティブ化されているときに親関係を更新できるようにしたいと思いますcount()
。これは、子に対して行うのは非常にコストがかかるためです (アプリでそれを何度も行う必要があります)。動作していますが、( ) 内にincrease_count
アクセスできません。何か案は?@commentable
decrease_count
@commentable = nil