Add support for custom search_document_id with record loading#1734
Open
khasinski wants to merge 1 commit intoankane:masterfrom
Open
Add support for custom search_document_id with record loading#1734khasinski wants to merge 1 commit intoankane:masterfrom
khasinski wants to merge 1 commit intoankane:masterfrom
Conversation
When a model defines a custom search_document_id, searching with load: true
would fail to find records because Searchkick used the custom ID to query
the database primary key.
This adds support for models to define find_by_search_document_ids class
method to handle the mapping from custom search document IDs back to
database records.
Example:
class Product < ApplicationRecord
searchkick
def search_document_id
"tenant_#{tenant_id}_#{id}"
end
def self.find_by_search_document_ids(search_ids)
ids = search_ids.map { |sid| sid.split("_").last }
where(id: ids)
end
end
Fixes ankane#1732
93e280b to
79f97e2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a model defines a
custom search_document_id, searching withload: truewould fail to find records because Searchkick used the custom ID to query the database primary key.This adds support for models to define
find_by_search_document_idsclass method to handle the mapping from custom search document IDs back to database records.Example:
Fixes #1732