我目前正在使用 acts-as-taggable-on gem 向我的 Pieces 模型添加标签。
我正在使用 elasticsearch 将标签索引添加到 Pieces。
但是要在创建标签时更新索引,我需要建立关联
belongs_to :taggable, touch: true
在标记模型中。
Here是 acts-as-taggable-on 中标记模型的链接
我如何添加 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 }
关于ruby-on-rails - 设置 "acts-as-taggable-on"标记关联以在保存时触摸标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138527/