de Malheureusement siffleur la réponse pourrait ne pas convenir dans de nombreux cas. Par exemple, cela ne fonctionne pas dans les deux sens. Par exemple, supposons que vous créez un nouveau mot:
word = Word.create(:word_name => 'tremble')
['shake', 'vibrate'].each { |syn| word.synonyms.create(:word_name => syn) }
Maintenant, si vous faites:
word = Word.find_by_word_name('tremble')
p word.synonyms # this would print out the Words with the word_name 'shake' and 'vibrate'.
cependant si vous l'avez fait l'inverse:
word = Word.find_by_word_name('vibrate')
p word.synonyms # this would print an empty association.
Cette dit que le mot «vibrer» n'a AUCUN synonymes.
Donc, fondamentalement, cette méthode ne fonctionnera pas dans les deux sens (par exemple vibrent est synonyme tremblent, et ils tremblent est synonyme de vibrent)
Edit: Dans un sens, vous pouvez utiliser cette approche, cependant, vous devrez attribuer explicitement les synonymes pour chaque mot. Donc, bien que vous ayez spécifié des synonymes de tremblement (qui sont 'vibrer' et 'secouer'), vous devrez toujours spécifier les synonymes de 'secouer' ('qui tremblent' et 'vibrer') et 'vibrer' (qui sont ' trembler 'et secouer').
Pouvez-vous nous donner un exemple concret? Est-ce comme un humain qui a un parent (qui est évidemment un humain aussi)? Ou voulez-vous dire "Cars.all.green" pour renvoyer toutes les voitures vertes? –
Oui, c'est comme Personne a beaucoup d'amis (Personnes) – awex