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

标签 ruby-on-rails elasticsearch tags acts-as-taggable-on

我目前正在使用 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/

相关文章:

ruby-on-rails - 将 Rail4 Assets 管道获取到 heroku

ruby-on-rails - rails : How do I use hidden_field in a form_for?

ruby-on-rails - not_analyzed无法正常工作

elasticsearch - 映射Elasticsearch 2.3.3中的更改

elasticsearch - 使用日语文本的icu_collat​​ion的嵌套排序导致CircuitBreakingException

sed - 如何替换文件中匹配标签下的所有匹配模式

grails - 我可以在 GSP 之外使用 grails 标签吗?

ruby-on-rails - 在 Rails 中对数字字符串进行排序

html - 用户在 RoR 站点中提交的内部链接

Android NFC - ndef.writeNdefMessage() 抛出 IOException 并删除标签数据