Dans le monde du développement web, la rapidité et l'efficacité sont des atouts majeurs. Ruby on Rails, souvent abrégé en Rails, est un framework populaire qui facilite le développement d'applications web. D'autre part, HTMX est une bibliothèque JavaScript qui permet d'améliorer l'interactivité des applications sans avoir à écrire beaucoup de code JavaScript. Dans cet article, nous allons explorer comment combiner Rails et HTMX pour développer des applications rapidement et efficacement.
Ruby on Rails est un framework de développement web écrit en Ruby. Il suit le principe de "Convention over Configuration", ce qui signifie qu'il prend des décisions par défaut pour vous, vous permettant de vous concentrer sur la logique métier plutôt que sur la configuration. Rails est également connu pour sa structure MVC (Modèle-Vue-Contrôleur), qui aide à organiser le code de manière claire et maintenable.
HTMX est une bibliothèque JavaScript légère qui permet d'ajouter des fonctionnalités AJAX à vos applications web sans avoir à écrire beaucoup de code JavaScript. Avec HTMX, vous pouvez charger des fragments HTML, gérer des événements et interagir avec des API de manière simple et intuitive. Cela permet de créer des interfaces utilisateur dynamiques tout en gardant le code propre et facile à maintenir.
Combiner Rails et HTMX offre plusieurs avantages :
Pour commencer, vous devez avoir Ruby et Rails installés sur votre machine. Vous pouvez vérifier cela en exécutant les commandes suivantes :
ruby -v rails -v
Si vous n'avez pas Rails installé, vous pouvez l'installer avec la commande suivante :
gem install rails
Une fois Rails installé, vous pouvez créer une nouvelle application :
rails new mon_application cd mon_application
Ensuite, pour ajouter HTMX à votre projet, vous pouvez l'installer via npm ou en ajoutant directement le script dans votre fichier layout. Voici comment faire avec npm :
npm install htmx.org
Ou, si vous préférez l'ajouter directement, modifiez votre fichier app/views/layouts/application.html.erb
pour inclure HTMX :
Mon Application <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_pack_tag 'application' %>
Pour illustrer comment utiliser Rails et HTMX ensemble, créons une application simple de gestion de tâches. Cette application permettra aux utilisateurs d'ajouter et de supprimer des tâches sans recharger la page.
Tout d'abord, générons un modèle pour nos tâches :
rails generate model Task title:string completed:boolean rails db:migrate
Ensuite, générons un contrôleur pour gérer les tâches :
rails generate controller Tasks
Ouvrez le fichier config/routes.rb
et ajoutez les routes pour les tâches :
Rails.application.routes.draw do resources :tasks, only: [:index, :create, :destroy] root "tasks#index" end
Dans le fichier app/controllers/tasks_controller.rb
, ajoutez les actions pour afficher, créer et supprimer des tâches :
class TasksController < ApplicationController def index @tasks = Task.all end def create @task = Task.new(task_params) if @task.save render partial: "task", locals: { task: @task } else render json: { error: @task.errors.full_messages }, status: :unprocessable_entity end end def destroy @task = Task.find(params[:id]) @task.destroy head :no_content end private def task_params params.require(:task).permit(:title, :completed) end end
Dans le fichier app/views/tasks/index.html.erb
, ajoutez le code suivant pour afficher la liste des tâches et un formulaire pour en ajouter de nouvelles :
Liste des Tâches
<%= render @tasks %>Ajouter une Tâche
<%= form_with(model: Task.new, local: false) do |form| %> <%= form.text_field :title, placeholder: "Titre de la tâche" %> <%= form.submit "Ajouter" %> <% end %>
Ensuite, créez un fichier partiel pour afficher une tâche dans app/views/tasks/_task.html.erb
:
<%= task.title %>
<%= button_to "Supprimer", task_path(task), method: :delete, remote: true, class: "btn btn-danger" %>
Pour rendre le formulaire d'ajout de tâche interactif, nous allons utiliser HTMX. Modifiez le formulaire dans app/views/tasks/index.html.erb
pour inclure les attributs HTMX :
<%= form_with(model: Task.new, local: false, html: { "hx-post" => tasks_path, "hx-target" => "#task-list", "hx-swap" => "beforeend" }) do |form| %> <%= form.text_field :title, placeholder: "Titre de la tâche" %> <%= form.submit "Ajouter" %> <% end %>
Pour gérer la suppression des tâches, nous allons également ajouter un attribut HTMX au bouton de suppression dans le fichier partiel app/views/tasks/_task.html.erb
:
<%= button_to "Supprimer", task_path(task), method: :delete, remote: true, class: "btn btn-danger", "hx-target" => "#task_<%= task.id %>", "hx-swap" => "outerHTML" %>
En combinant Ruby on Rails et HTMX, vous pouvez développer des applications web rapidement tout en offrant une expérience utilisateur fluide et interactive. Rails vous permet de structurer votre application de manière efficace, tandis qu'HTMX simplifie l'ajout d'interactivité sans nécessiter une grande quantité de code JavaScript. Que vous soyez un développeur débutant ou expérimenté, cette combinaison peut vous aider à créer des applications performantes et agréables à utiliser.
Alors, qu'attendez-vous ? Lancez-vous dans le développement d'applications avec Rails et HTMX et découvrez à quel point il est facile de créer des expériences web dynamiques !
© 2024 RailsInsights. All rights reserved.