1

Railsの特定のオブジェクトに関連付けられているタグの数を追跡する方法についての提案を探しています。私はacts_as_taggable_onを使用していますが、正常に動作しています。私ができるようにしたいのは、タグのないすべてのオブジェクトを、できればスコープ、つまりObject.untagged.allを介して検索することです。

私の最初の考えは、after_saveコールバックを使用して、モデルの「taggings_count」という属性を更新することでした。

def update_taggings_count
  self.taggings_count = self.tag_list.size
  self.save
end

残念ながら、これは私を無限ループに陥らせるという明らかなことをします。メインオブジェクトが保存されるまでtag_listは更新されないため、after_saveコールバックを使用する必要があります。

私は自分のタグ付けシステムを展開しようとしているので、何か提案をいただければ幸いです。

よろしく

ロビン

4

1 に答える 1

0

同じことをしましたが、関数をbefore_saveに入れます。

scope :untagged, where("taggings_count = 0")
before_save :update_taggings_count

def update_taggings_count
  self.taggings_count = tag_list.size
end
于 2010-07-23T22:02:47.417 に答える