Skip to content
Snippets Groups Projects
action_text.md 1.48 KiB
Newer Older
Sébastien Gaya's avatar
doc
Sébastien Gaya committed
# Action Text

*PoC : Ajouter d'un `new_text` sur les `Communication::Website::Post`*

## Ajouts des assets

A partir de la commande `rails g action_text:install`, les styles sont importés en SASS.

Pour la partie JS, avant Rails 7, Action Text n'est fourni qu'en module ES6 prêt pour Babel. Ce format est incompatible avec Sprockets. La solution est de récupérer sur la branche `main` de Rails, le fichier `actiontext/app/assets/javascripts/actiontext.js` et de le mettre dans les vendors pour l'importer via Sprockets.

## Base de données

A partir de la commande `rails g action_text:install`, le fichier de migration pour les rich texts est importé.

On modifie bien la relation polymorphique et l'appel de `create_table` pour utiliser le type UUID.

## Modèle

On rajoute un `has_rich_text :new_text` sur `Communication::Website::Post`, ajout dans les permitted_params, ajout dans le formulaire avec `as: :rich_text_area`, et ajout dans le show.

On crée un initializer pour Action Text car les `ActiveStorage::Blob` uploadés sont rattachés à un objet `ActionText::RichText`, lui-même rattaché au `Communication::Website::Post`.

Ainsi dans l'initializer, on fait déléguer l'appel de `university` et `university_id` au `record` attaché au `ActionText::RichText`.

## Sanitizer

Action Text a sa propre configuration des tags et attributs autorisés dans son sanitizer. On a donc dans l'initializer `action_text.rb`, des appels pour modifier cette configuration.

## Affichage des attachments

TODO