La gem rails admin disponible dans la rubygem, vous permet de fournir un environnement d’administration simple et efficace. Très utile pour gagner du temps, ou simplifier la gestion d’un site internet à votre équipe. Elle est très appréciée des datas scientistes et des bloguers no code. Nous allons voir ensemble comment configurer et installer rails admin.
Dans un premier temps, j’ai lancé un template rails contenant Postgres et devise. Et oui, qui dis administrateur du site dis gestion des users. Devise vous permettra de créer des comptes administrateurs ainsi que des comptes standards pour votre application rails. Elle gère l’inscription à votre site ainsi que la connexion ou la modification d’un compte utilisateur. Exactement pareil que pour vos comptes facebook, amazon …
Avant de pouvoir utiliser rails admin, j’ai créé une application simple :
Création d’article de blog
- En tant qu’utilisateur je peux voir tous les posts
- En tant qu’utilisateur je peux créer un post
- En tant qu’utilisateur je peux supprimer un post
- En tant qu’utilisateur je peux éditer un post
- En tant que visiteur je peux voir la home page
- En tant que visiteur je peux m’inscrire pour poster.
Notre structure de base de donnée (schema.rb)
Comme nous l’indique la dernière ligne (en tant que visiteur je peux m’inscrire pour poster un article), nous avons une table user et une post ayant des references et une foreign key de user à post. Un post à un user_id (convention active record).
Installer rails admin
Pour installer rails admin, il vous suffit dans un premier temps de vous rendre dans le gemfile. Puis ajouter la gem suivante :
gem 'rails_admin'
Ne pas oublier de lancer un bundle install dans votre terminale.
Configurer rails admin
Pour configurer rails admin avec devise, il nous suffira de lancer la commande d’installation disponible dans la documentation github :
rails g rails_admin:install
On voit alors que la commande nous a créer un fichier de configuration appelé : rails_admin.rb.
La commande vous demandera quel slug de lien souhaitez-vous avoir pour l’administration de site. Elle crée automatiquement la route dans le fichier routes.rb. (ligne 2 voir photo)
Nous allons ensuite, nous rendre dans config > rails_admin et décommenter les lignes concernant devise.
Ligne à décommenter dans le fichier de config rails_admin.rb :
config.authenticate_with do
warden.authenticate! scope: :user
end
config.current_user_method(&:current_user)
Dernière étape (créer un administrateur)
Pour créer un administrateur, assurez-vous d’avoir une colonne dans votre table user : admin de type boolean. Si ça n’est pas le cas, je vous invite à lancer une migration :
rails g migration AddColToUser
Dans le fichier de migration créé, nous allons ajouter une ligne de code :
add_column :users, :admin, :boolean, default: false
Lors de la création d’un utilisateur par défaut, nous le passerons en false pour admin. C’est en console que vous définirez quel(s) utilisateur(s) seront administrateur. C’est à l’équipe tech de donner les droits ou non à des utilisateurs.
Pour cela, il vous suffira d’ouvrir la console rails en lançant :
rails c
Puis de lancer :
User.first.update(admin: true)
Vérifions maintenant que notre premier user est bien administrateur :
User.first
Well done ! Notre premier user dans notre base de donnée de développement est bien administrateur !
Se connecter à notre panel d’administration rails admin
Pour vous connecter à l’administration, il vous suffit de vous rendre sur le chemin définit dans votre fichier routes.rb afin de vous connecter à l’administration. Dans notre exemple nous avons choisit /exit
Vous pouvez maintenant cliquer sur les différentes données contenu dans votre base de donnée afin de voir vos datas. Vous pouvez également modifier les données, attribuer de nouvelles valeurs etc. Laisser parler les besoins de votre équipe !
En savoir plus sur devise ?
lien du repo github : https://github.com/alexisjps/demo-rails_admin