Question Ajout de balises aux publications dans Ruby on Rails


Je crée un blog dans Rails en utilisant Scaffolding. Je veux ajouter un champ "tags" sur chaque poste comme sur StackOverflow et WordPress. Je peux le faire avec le type de chaîne ( rails generate scaffold post title:string body:text tags:string ), puis séparés par des virgules, mais ce n’est pas une bonne pratique puisque je veux que le lecteur navigue par balises (par ex. /tags/web20 ou /tags/lol ). Comment puis-je faire ceci?


11
2018-01-12 15:41


origine


Réponses:


Le marquage est si courant que les implémentations sont une marchandise. Je crois "agit comme taggable sur" est généralement la manière préférée d'implémenter les tags.

Voir d'autres solutions populaires ici.

Si vous souhaitez l'implémenter vous-même, vous pouvez vous plonger dans le code source pour trouver des idées.


17
2018-01-12 15:47



Je suggère de créer un modèle de tag et d'utiliser has_and_belongs_to_many pour attribuer des balises aux publications. Je ne sais pas si la fonction d'échafaudage vous aidera à créer un formulaire pour cela, mais il ne devrait pas être difficile de l'ajouter vous-même. Je suggère également d'utiliser le plugin formtastic car il est beaucoup plus facile et plus agréable de créer des formulaires avec lui.


1
2018-01-12 15:47



Euh, la manière habituelle? Ajouter une entité Tag, ajouter has_many :tags dans votre entité de poste. Puis migrez. Ce serait tout.


0
2018-01-12 15:46