[RUBY] Présentation du calendrier complet à l'application Rails

À propos de cet article

Introduction de Callendar complet de jQurery pour afficher un calendrier dans lequel les rendez-vous peuvent être écrits dans l'application Rails en cours de création. J'espère que cela aidera ceux qui recherchent un moyen d'afficher le calendrier.

Conditions préalables

La vue est écrite en haml et SCSS. J'utilise Rails "5.0.7.2".

commander

J'ai créé un modèle d'événement avec échafaudage. Lors de la rédaction d'un rendez-vous avec FullCalender, il semble que cela ne fonctionnera que si le nom du modèle est ** Event ** </ font>.

$ rails g scaffold event title:string body:string start_date:datetime end_date:datetime
$ rails db:migrate RAILS_ENV=development

gem 'jquery-rails'
gem 'fullcalendar-rails'
gem 'momentjs-rails'

app/assets/stylesheets/application.scss


*= require_tree .
 *= require_self
 *= require fullcalendar
 */

JavaScript

app/assets/javascripts/application.js


//= require jquery
//= require moment
//= require fullcalendar

$(function () {
    //
    $(document).on('turbolinks:load', function () {
        if ($('#calendar').length) {

            function Calendar() {
                return $('#calendar').fullCalendar({
                });
            }
            function clearCalendar() {
                $('#calendar').html('');
            }

            $(document).on('turbolinks:load', function () {
                Calendar();
            });
            $(document).on('turbolinks:before-cache', clearCalendar);

            //events: '/events.json',Écrivez les trois suivants et remplissez ** bundle install ** SCSS Remplissez ce qui suit dans application.scss Copiez et collez tel quel. Cela affichera le calendrier en japonais. Détecter la transition d'écran Ajouté ci-dessous
            $('#calendar').fullCalendar({
                events: '/events.json',
                //Afficher le haut du calendrier par année et par mois
                titleFormat: 'AAAA M mois',
                //Afficher le jour en japonais
                dayNamesShort: ['journée', 'Mois', 'Feu', 'eau', 'bois', 'Argent', 'sol'],
                //Disposition des boutons
                header: {
                    left: '',
                    center: 'title',
                    right: 'today prev,next'
                },
                //Intervalle d'affichage des événements sans heure de fin
                defaultTimedEventDuration: '03:00:00',
                buttonText: {
                    prev: 'Avant',
                    next: 'Suivant',
                    prevYear: 'Année précédente',
                    nextYear: 'l'année suivante',
                    today: 'aujourd'hui',
                    month: 'Mois',
                    week: 'la semaine',
                    day: 'journée'
                },
                // Drag & Drop & Resize
                editable: true,
                //Affichage de l'heure de l'événement sur 24 heures
                timeFormat: "HH:mm",
                //Changer la couleur de l'événement
                eventColor: '#87cefa',
                //Changer la couleur du texte de l'événement
                eventTextColor: '#000000',
                eventRender: function(event, element) {
                    element.css("font-size", "0.8em");
                    element.css("padding", "5px");
                }
            });
        }
    });
});

Comment afficher le calendrier

Il est affiché uniquement par "#calendar" (lors de l'écriture en HTML, écrivez l'élément div dont l'id est calendrier).

app/views/events/index.html.haml


%p#notice= notice
%h1 Events
%table
  %thead
    %tr
      %th Title
      %th Body
      %th Start date
      %th End date
      %th{:colspan => "3"}
  %tbody
    - @events.each do |event|
      %tr
        %td= event.title
        %td= event.body
        %td= event.start_date
        %td= event.end_date
        %td= link_to 'Show', event
        %td= link_to 'Edit', edit_event_path(event)
        %td= link_to 'Destroy', event, method: :delete, data: { confirm: 'Are you sure?' }
%br/
= link_to 'New Event', new_event_path
//Cette fois, je l'ai écrit sous le code existant.
#calendar

※point important Veuillez désactiver la fonction turbolinks.

app/views/layouts/application.html.haml


%body{"data-turbolinks" => "false"}
    = yield

Paramètres de routage

Définissez le routage de manière à pouvoir le vérifier immédiatement après son démarrage.


Rails.application.routes.draw do
  root "events#index"
  resources :events
end

Lorsque vous démarrez l'application avec "rails s", le calendrier doit être affiché comme ci-dessous.

スクリーンショット 2020-05-21 20.35.06.png

Cliquez sur Nouveaux événements pour les saisir et les événements seront affichés sur le calendrier. Capture d'écran 2020-05-21 20.43.11.png Vous pouvez vérifier les détails de l'événement en cliquant sur l'événement dans le calendrier. スクリーンショット 2020-05-21 20.43.18.png

Impressions

En utilisant la bibliothèque jQurery, j'ai pu facilement afficher le calendrier. J'aimerais continuer à utiliser activement la bibliothèque à l'avenir.

Les références

https://qiita.com/syukan3/items/68280ce4ff45aa336363

Recommended Posts

Présentation du calendrier complet à l'application Rails
Présentation de Bootstrap à Rails 5
Présentation de Bootstrap aux rails !!
Préparation à la création de l'application Rails
Présentation de React to Rails avec react-rails
[Rails] Présentation de jquery
[Rails] Présentation du dispositif
Présentation de l'application New Relic to Rails sur Heroku
[Rails] Gestion des horaires à l'aide du calendrier complet Implémentation d'hier
Essayez de déployer l'application Rails sur EC2-Part 2 (Server Construction) -
[Rails] Introduction de pay.jp (de la personnalisation de la vue à l'enregistrement)
[Introduction] Créer une application Ruby on Rails
[Rails] Présentation de Active Hash
Présentation de Vue.js à Rails
Comment désinstaller Rails
Présentation de Rails6 + Bootswatch / Honoka
Rails6 J'ai essayé d'introduire Docker dans une application existante
[Rails] Créer une application
Comment déployer l'application Rails sur AWS (résumé de l'article)
Implémenter la fonction d'application dans Rails
[rails] Comment publier des images
rails nouvelle commande de lancement d'application
Présentation de l'AWS CLI à CentOS 7
[Rails] Comment utiliser enum
Introduction au développement d'applications Android
Présentation du pilote nvidia passé à Ubuntu
[Rails] Comment utiliser enum
Comment lire les itinéraires des rails
Comment utiliser la jonction de rails
Déployer l'application sur WildFly
[Rails] Ajouter une colonne à concevoir
Afficher le calendrier mensuel dans Rails
Comment terminer le serveur de rails
Réécriture de l'applet à l'application
Comment écrire des graines de Rails
[Rails] Comment utiliser la validation
[Rails] Comment désactiver les turbolinks
Passer des paramètres à Rails link_to
[Rails] Comment utiliser authenticate_user!
[Rails] Comment mettre en œuvre le scraping
[Rails] Comment faire des graines
Introduction de JITSI MEET à CentOS8
Comment écrire le routage Rails
[Rails] Comment installer simple_calendar
Serveur Web et serveur d'applications Rails
[Rails] Comment installer reCAPTCHA
Présentation du client gRPC aux rails
[Rails] Comment utiliser Scope
Ruby on Rails - De la construction d'environnement au développement d'application simple sur WSL2