2013-09-22 1 views
0

Je suis l'exemple suivant pour indexer des objets ActiveRecord et des objets associés dans Elasticsearch.
https://gist.github.com/karmi/3200212Méthode d'indexation des résultats dans ElasticSearch à partir d'objets ActiveRecord associés

Y a-t-il autre chose que je devrais prendre en compte si l'objet associé stocke les résultats d'une méthode? J'utilise en fait la gemme acts-as-taggable-on avec tag_list. Mon to_indexed_json ressemble à ce gars-là:

to_json(include: { items: {only: :name, methods: :tag_list} }) 

Quand je reconstruis avec ce qui suit,

rake environment tire:import CLASS=Business FORCE=true 

il inclus avec succès les résultats de liste_balise pour chaque article. Suivant l'exemple, Business fait un pneu.update_index après avoir été touché. Cependant, lorsque j'ajoute un nouvel "Item", il ajoute avec succès tous les attributs de cet Item mais sans la tag_list.

Voici un lien vers mes deux modèles: https://gist.github.com/grumpasuarus/6661414

+0

pouvez-vous coller votre fichier de modèle, y compris le code pour la recherche élastique. –

+0

Mise à jour de la question avec un lien vers les deux modèles. – grumpasaurus

Répondre

0

En fin de compte, je ne comprenais pas comment la méthode de to_json a travaillé avec « méthodes:: liste_balise ». Pour que cela fonctionne, j'avais besoin d'une méthode "tag_list" sur mon modèle Business.

Pour résoudre le problème, j'ai créé une méthode dans le modèle métier pour obtenir toutes les informations de marquage pour un élément donné.

Questions connexes