设置 "acts-as-taggable-on" 标记关联以在保存时触摸可标记?

Set "acts-as-taggable-on" Taggings association to touch Taggable on save?

我目前正在使用 acts-as-taggable-on gem 向我的 Pieces 模型添加标签。

我正在使用 elasticsearch 将标签索引添加到 Pieces。

但是要在创建标签时更新索引,我需要建立关联

belongs_to :taggable, touch: true

在标记模型中。

Here 是 acts-as-taggable-on

中标记模型的 link

如何将 touch: true 关联添加到 Taggings 模型,以便在我为那件作品创建标签时更新我的​​ Piece 索引?

好的,我明白了。

这有两个步骤。首先,您必须在标记模型中设置 belongs_to 关联以包含 "touch: true" 选项。这可以在 acts_as_taggable.rb 初始化器中完成,如下所示:

ActsAsTaggableOn::Tagging.belongs_to :taggable, polymorphic: true, touch: true

接下来我们需要告诉elasticsearch在每次触摸Piece时重新索引Piece索引。这可以通过向 Piece 模型添加以下回调来完成:

after_touch() { __elasticsearch__.index_document }