我有一个简单的 algolia 设置,有几个模型,每个模型都有一些属性,例如:
class User < ActiveRecord::Base
include AlgoliaSearch
algoliasearch do
attributes :id, :name
add_attribute :_tags
end
def _tags
users = []
self.connections.each do |connection|
users.push('user_' + connection.user_id.to_s)
end
users
end
end
上面的设置很容易让我限制每个用户的搜索结果,以便用户只能看到他们有权查看它们是否在 Rails 应用程序中关联/相关的记录。
但是,当Connection
模型被创建或销毁时,User
模型是不知道的,因此会对搜索结果产生负面影响。
如何向Connection
模型添加 ActiveRecord 回调并相应地更新_tags
记录上的键,以便_tags
更新为包含或排除(基于创建或销毁)?
tldr:_tags
在 Algolia 中的记录具有['user_1', 'user_2']
由 Rails 中的关联确定的值。Algolia 中的记录与user_2
Rails 中的 DB 之间的关联已从数据库中删除,如何user_2
从 Algolia 中记录的标签数组中删除?