У меня есть модель, показанная ниже:
class Note < Record
include Shared::ContentBasedModel
algoliasearch disable_indexing: AppConfig.apis.algolia.disable_indexing do
attributes :id, :key
[:keywords, :tags, :description, :summary].each do |attr|
attribute [attr] do
self.meta[attr.to_s]
end
end
attribute :content do
Nokogiri.HTML(self.meta["html"]).text.split(' ').reject { |i| i.to_s.length < 5 }.map(&:strip).join ' '
end
attribute :photo do
unless self.meta["images"].blank?
self.meta["images"].first["thumb"]
end
end
attribute :slug do
to_param
end
attribute :url do
Rails.application.routes.url_helpers.note_path(self)
end
end
end
Я использую гем AlgoliaSearch для индексации своих моделей в API Algolia, и когда я пытался index
модель с какое-то длинное content
Я получаю следующую ошибку:
Ошибка: Algolia :: AlgoliaProtocolError (400: невозможно выполнить POST для https://XXXX.algolia.net/1/indexes/Note/batch: {" сообщение ":" Запись в позиции 1 слишком велика. ObjectID = 56 = 20715 байт. Свяжитесь с нами, если вам нужна расширенная квота "," position ": 1," objectID ":" 56 "," status ": 400} (400))
После этого я удалил ВСЁ следующим образом, НО я все еще получаю точно такую же ошибку !!
class Note < Record
include Shared::ContentBasedModel
algoliasearch disable_indexing: AppConfig.apis.algolia.disable_indexing do
attributes :id
end
end
Похоже, что Rails не обновляет кэшированные модели.
Окружение: production
Версия Rails: v6
Вопрос: Почему это происходит и как я могу очистить кэшированную модель?
Примечание: Я перепробовал все, включая удаление папки tmp/cache
, но это не go прочь!