🧚 Écoute ! Beekeeper Studio est une interface de base de données rapide, moderne et open source Télécharger
10 juillet 2024 Par Matthew Rathbone

Assure-toi que Ruby on Rails est installé sur ton système. Pour ce tutoriel, tu devras aussi ajouter les gems Chartkick et Groupdate à ton Gemfile.

#Gemfile
gem 'chartkick'
gem 'groupdate'

Ensuite, lance la commande bundle install pour installer les gems.

bundle install

Si tu n’as pas encore de projet Rails, tu peux en créer un avec la commande suivante pour Rails 7 :

rails new chart_app -d postgresql (Rails 7 uses Importmap by default)

Remarque : remplace postgresql par mysql ou sqlite3 selon ta base de données préférée.

Configurer Chartkick avec Importmap

Dans config/importmap.rb, ajoute :

pin "chartkick", to: "chartkick.js"
pin "Chart.bundle", to: "Chart.bundle.js"

Et dans app/javascript/application.js, ajoute :

import "chartkick"
import "Chart.bundle"

Pour esbuild, Webpacker ou d’autres bundlers JS, consulte la documentation de Chartkick.

Créer un graphique avec Chartkick et Groupdate

Modèle et préparation des données:

Supposons que tu as un modèle User avec un timestamp created_at. Nous allons représenter le nombre d’utilisateurs créés par jour.

class UsersController < ApplicationController
  def index
    @users_by_day = User.group_by_day(:created_at).count
  end
end

User.group_by_day(:created_at).count génère une requête SQL simple qui compte le nombre d’utilisateurs créés par jour.

Créer la vue index:

Dans ta vue, utilise le helper line_chart fourni par Chartkick pour créer le graphique :

<!-- app/views/users/index.html.erb -->
<h1>Users Registered Over Time</h1>
<%= line_chart @users_by_day %>

Quand tu lances ton serveur avec rails s et que tu ouvres ta page, tu devrais voir une courbe représentant le nombre d’utilisateurs créés chaque jour.

Améliorer tes graphiques

Chartkick permet de personnaliser les graphiques avec diverses options comme les couleurs, les messages, etc. Voici un exemple pour personnaliser le graphique précédent :

<%= line_chart @users_by_day, colors: ["#b00"], message: "Loading...", library: { backgroundColor: "transparent" } %>

Créer différents types de graphiques

Chartkick prend en charge plusieurs types de graphiques. Voici des exemples de graphiques que tu peux mettre en place.

Graphique en secteurs

Pour créer un graphique en secteurs montrant la répartition des rôles utilisateurs dans ton application :

Ruby:

@user_roles = User.group(:role).count

erb:

<%= pie_chart @user_roles %>

Histogramme

Pour visualiser le nombre de posts créés par les utilisateurs chaque mois :

Ruby:

@posts_by_month = Post.group_by_month(:created_at).count

erb:

<%= column_chart @posts_by_month %>

Graphique en aires

Pour créer un graphique en aires, semblable à la courbe mais rempli :

erb:

<%= area_chart @users_by_day %>

Conclusion

Avec Chartkick, créer des graphiques dans tes applications Ruby on Rails est rapide et simple : quelques lignes de code suffisent pour obtenir des graphiques dynamiques. En les intégrant à ton application, tu offres des visualisations qui aident à tirer des enseignements des données et à améliorer la prise de décision des utilisateurs.

Ces articles pourraient aussi te plaire :

Beekeeper Studio est une interface de base de données gratuite & open source

Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.

La version Linux de Beekeeper est 100% complète : rien de bâclé, aucun compromis sur les fonctionnalités.

Ce que les utilisateurs disent de Beekeeper Studio

★★★★★
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données à nouveau agréable. »
— Alex K., développeur base de données
★★★★★
« J’ai essayé beaucoup d’interfaces de base de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »
— Sarah M., ingénieure full stack