Bonjour à tous! Je suis @hiroki_tanaka, le producteur de Mayu Sakuma.
L'autre jour, j'ai présenté select2, un plug-in qui permet de sélectionner plusieurs sélections à la mode dans la série Rails 6.0. À cette époque, j'étais un peu accro à la différence entre la méthode d'introduction et la série Rails 5, j'ai donc résumé ce que j'avais enquêté.
select2 est une bibliothèque JavaScript qui rend le design HTML selectbox à la mode. notre site officiel est ici. → select2 Il s'agit d'un plug-in qui peut facilement implémenter non seulement l'interface utilisateur de la boîte de sélection à sélection unique, mais également la boîte de sélection à sélection multiple.
--Avant de présenter select2
--Multiple sélection déroulante après l'introduction de select2
L'introduction de select2 dans la série Rails5 a été introduite en utilisant Gem, mais à partir de Rails 6.0, Webpacker est utilisé à la place de Gem. Je voudrais présenter la procédure une par une.
Exécutez la commande suivante pour installer select2 dans votre application Rails. À ce stade, non seulement select2 mais également jQuery (et popper.js) requis pour installer select2 et bootstrap, qui est la partie UI de select2, sera installé.
$ yarn add jquery
$ yarn add popper.js
$ yarn add bootstrap
$ yarn add select2
Définissez l'application Rails'webpack / environment.js` pour que jQuery puisse être appelé à partir de n'importe quel fichier Rails.
config/webpack/environment.js
const { environment } = require('@rails/webpacker')
//Pour utiliser jQuery et Bootstrap JS
const webpack = require('webpack')
environment.plugins.prepend(
'Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Popper: 'popper.js'
})
)
module.exports = environment
Ajoutez également JQuery au manifeste packs / application.js
.
app/javascript/packs/application.js
require("jquery")
Définissez les deux paramètres suivants pour activer l'utilisation du bootstrap dans les applications Rails.
app/javascript/packs/application.js
import 'bootstrap';
import '../stylesheets/application';
app/javascript/stylesheets/application.scss
@import '~bootstrap/scss/bootstrap';
Bootstrap installé dans Webpacker pour tous les fichiers View de l'application Rails ・ Réglez le fichier d'origine layouts / application.html.erb
afin que jQuery puisse être utilisé.
app/views/layouts/application.html.erb
<head>
<%= stylesheet_pack_tag "application", media: "all" %>
<%= javascript_pack_tag 'application' %>
</head>
Définissez une boîte de sélection qui effectue plusieurs sélections sur le erb de l'application.
À ce stade, si select_tag est défini sur multiple: true
comme option, il devient une boîte de sélection qui peut être sélectionnée plusieurs fois.
Ensuite, écrivez dans le fichier JS correspondant au fichier erb afin que la boîte de sélection correspondante utilise select2.
app/views/test.html.erb
<%= javascript_pack_tag 'test' %>
<%= select_tag('animal', options_for_select([['Inu', 'dog'], ['Chat', 'cat'], ['Tori', 'bird'], ['Ushi', 'cow'], ['Serpent', 'snake']]), class: "form-control", multiple: true) %>
app/javascript/packs/test.js
$(function () {
$('#animal').select2();
});
Il existe différentes options dans select2. → sélectionnez 2 Options Ces options peuvent être définies avec jQuery. Voici un exemple de paramètres d'option.
app/javascript/packs/test.js
$(function () {
$('#animal').select2({
width: 'resolve' //Modifiez dynamiquement la largeur en fonction de la taille de la page.
theme: "classic" //Passez à l'interface utilisateur classique.
debug: true //Envoyez un message de débogage à la console du navigateur.
});
});
Je pense que l'introduction de select2 est devenue plus facile en utilisant du fil. Cependant, je ne comprends souvent pas le comportement interne de select2, je voudrais donc approfondir ma compréhension.