设置"行为可标记为" Taggings协会在保存时触摸Taggable?

时间:2015-06-30 12:36:45

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

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

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

但是,在创建标记时更新索引我需要进行关联

belongs_to :taggable, touch: true

在标记模型中。

Here是act-as-taggable-on中标记模型的链接

如何添加触摸:与Taggings模型的真关联,以便在为该片段创建标记时更新我的​​Piece索引?

1 个答案:

答案 0 :(得分:1)

好的我明白了。

这有两个步骤。首先,您必须在标记模型中设置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 }