2017-10-27 1 views
0

Ich habe ein Modell Adoption genannt:Finden Sie ähnliche Datensätze basierend auf race_id und animal_id

class Adoption < ApplicationRecord 
    belongs_to :animal 
    belongs_to :race 

    searchkick language: 'french' 

    def search_data 
    { 
     # name: name, 
     # description: description, 
     race_id: race_id, 
     animal_id: animal_id 
    } 
    end 
end 

So, jetzt habe ich ähnliche Adoptionen finden möchten. Ich habe zwei Adoptionssätze mit denselben Daten erstellt. In Rails-Konsole, mache ich diese Befehle: Adoption.reindex, dann: adoption = Adoption.find(1), und schließlich: similars = adoption.similar(fields: %w[race_id^5 animal_id], limit: 3).records. Und es findet keine ähnlichen Adoptionen. Aber wenn ich name in einer search_data Methode auskommentiere, reindexiere und name zum Feldfeld hinzufüge, findet es die Annahme. Also, was ist falsch an meinem Code? Jede Hilfe wird geschätzt. Vielen Dank.

+0

versuchen, diese similars = adoption.similar (Felder: [: race_id,: animal_id], Grenze: 3) .records –

+0

Ja, es funktioniert. Vielen Dank –

Antwort

1

Hier ist die Lösung

similars = adoption.similar(fields: [:race_id, :animal_id], limit: 3).records 
Verwandte Themen