emolog

脳内メモです。

【rails】activerecord-importとelasticsearch-railsのimportがコンフリクトしたのでメモ

前提

  • もともとrailsでElasticsearchを使用していて、後からactiverecord-importに依存しているライブラリを入れた。
$ bundle exec gem list | grep activerecord-import
activerecord-import (1.0.8)
$ bundle exec gem list | grep elasticsearch-rails
elasticsearch-rails (7.1.1)
  • 両方でrailsのmodelにimportというクラスメソッドを生やすので、コンフリクトしてしまい、Elasticsearchの処理が軒並みこけてしまった。

f:id:ababababa0222:20210308172835p:plain

調査

  • activerecord-import側にコンフリクトした場合の対応が載っていた。

Activerecord-Import adds the .import method onto ActiveRecord::Base. There are other gems, such as elasticsearch-rails, that do the same thing. In conflicts such as this, there is an aliased method named .bulk_import that can be used interchangeably.

aliasを使えみたいにかいてある。

github.com

対応

  • なんかメソッドのalias使うの微妙だな〜と思ったので。
Model.__elasticsearch__.import

みたいな感じでつかうようにした。

参考

qiita.com

おしまい。