我有一個簡單algolia設置的幾個模型和每個模型都有一些屬性,例如:Algolia基於Rails關聯的標記搜索,如何在關聯創建/銷燬時更新標記?
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
模型不知道,因此會對搜索結果產生負面影響。
我如何添加一個ActiveRecord回調至Connection
模型,從而使_tags
更新爲包含或排除(基於創造或毀滅)相應更新的記錄_tags
關鍵?
tldr:_tags
在Algolia的一個記錄上有價值['user_1', 'user_2']
由Rails中的關聯決定。 Algolia和user_2
中的記錄之間的關聯從Rails中的DB中刪除,我如何從Algolia的記錄中的標籤陣列中刪除user_2
?
是在瀏覽器或從你的服務器執行的algolia搜索? – MMachinegun
在瀏覽器中,但與問題無關。 – Noah