[RUBY] [Rails] Ich habe eine einfache Kalender-Mini-App mit benutzerdefinierten Spezifikationen erstellt.

Einführung

Ich wollte einen Kalender für meine App, also habe ich ihn so erstellt, dass ich die Mini-App für den einfachen Kalender anpassen kann. Ich habe zuvor "Vollständiger Kalender" erstellt, aber ich schien nicht in der Lage zu sein, die gewünschten Funktionen einzubinden. Daher möchte ich "Einfacher Kalender" erstellen, der detailliert implementiert werden kann.

Abschlusszeichnung

スクリーンショット 2020-10-29 17.57.24.png

Inhaltsverzeichnis

  1. Erstellen Sie eine neue Anwendung
  2. Einführung von simple_calendar
  3. Erstellen einer Vorlage für die Kalenderfunktion
  4. Kalender anzeigen und Funktion "Ereignis hinzufügen" implementieren
  5. Passen Sie das Erscheinungsbild an

Zielperson

Diejenigen, die einen Kalender einführen möchten Diejenigen, die MVC implementieren können

Entwicklungsumgebung

ruby 2.6.5 rails 6.0.0 Datenbank mysql2 0.4.4 simple_calendar 2.0

Implementierung

Lassen Sie es uns implementieren ~

1. Erstellen Sie eine neue Anwendung

Starten Sie zunächst eine neue Anwendung.

Terminal.


% rails _6.0.0_ new simple_calendar_app -d mysql
% cd simple_calendar_app
% rails db:create

Die Datenbank wird mit MySQL erstellt.

Terminal.


Created database 'simple_calendar_app_development'
Created database 'simple_calendar_app_test'

Sie haben jetzt eine Datenbank.

2. Einführung von simple_calendar

Gemfile.


gem 'simple_calendar', '~> 2.0'

Terminal.


% bundle install

Vergessen Sie nicht, die Installation zu bündeln! !!

3. Erstellen einer Vorlage für die Kalenderfunktion

Erstellen Sie das Modell, nachdem Sie den Controller erstellt und das Routing angezeigt und konfiguriert haben. 3.1 Controller und Ansichten 3.2 Routing einrichten 3.3 Erstellen Sie ein Modell

3.1 Controller und Ansichten

Terminal.


% rails g controller events index

Terminal.


      create  app/controllers/events_controller.rb
       route  get 'events/index'
      invoke  erb
      create    app/views/events
      create    app/views/events/index.html.erb
      invoke  test_unit
      create    test/controllers/events_controller_test.rb
      invoke  helper
      create    app/helpers/events_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/events.scss

Durch Festlegen des "Ereignisindex" beim Erstellen eines Controllers werden die dem Ereigniscontroller entsprechende Ansicht und die Routingeinstellungen festgelegt.

3.2 Routing einrichten

ruotes.rb


Rails.application.routes.draw do
  get 'events/index' 
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
  #Bis zu diesem Punkt wird es automatisch eingestellt, wenn der Controller generiert wird.

  #Diesmal eingestellt auf
  root to: 'events#index'
  resources :events
end

Setzen Sie dieses Mal #events # index auf root und verwenden Sie Ressourcen. Löschen Sie daher die automatisch festgelegte Beschreibung.

3.3 Erstellen Sie ein Modell

Terminal.


% rails g model event

Bearbeiten Sie die Migrationsdatei, die automatisch mit dem Modell generiert wurde.

2020XXXXXXX_create_events.rb


class CreateEvents < ActiveRecord::Migration[6.0]
  def change
    create_table :events do |t|
      #Fügen Sie diese drei hinzu
      t.string :title
      t.text :content
      t.datetime :start_time

      t.timestamps
    end
  end
end

Ich werde es danach in der Ansicht definieren, aber es scheint, dass es durch Setzen von "t.datetime: start_time" in den Kalender ausgegeben wird. Da es sich um eine Mini-App handelt, müssen drei Spalten gespeichert werden. Sie muss jedoch entsprechend der zu entwickelnden App angepasst werden.

Terminal.


%  rails db:migrate

Wenn Sie den Server mit Rails s starten, wird die automatisch generierte Ansichtsseite angezeigt.

スクリーンショット 2020-10-29 14.29.18.png Zuallererst ist dies die Vorlage.

4. Kalender anzeigen und Funktion "Ereignis hinzufügen" implementieren

Da es sich um eine Mini-App handelt, werden wir als Nächstes die mindestens drei erforderlichen Funktionen implementieren.

4.1, Kalenderanzeige 4.2, Hinzufügen von Ereignissen 4.3, zusätzliche Ereignisse im Kalender anzeigen

4.1, Kalenderanzeige

Bearbeiten Sie den Controller und die Ansicht.

/app/controllers/events_controller.rb


class BlogsController < ApplicationController

  def index
    @events = Event.all #← Fügen Sie dies hinzu
  end
end

/app/views/events/index.html.erb


<h1>Events#index</h1>
<p>Find me in app/views/events/index.html.erb</p>
<%#Da es bisher automatisch generiert wird, wird es gelöscht%>

<%#Fügen Sie Folgendes hinzu%>
<%= month_calendar events: @events do |date, events| %>
  <%= date.day %>
<% end %>

Terminal.


%  rails s

Starten Sie den Server und überprüfen Sie ihn einmal. スクリーンショット 2020-10-29 14.59.57.png

Das Standardbild wird angezeigt. Wir werden das Aussehen später korrigieren, aber wir werden zuerst Funktionen hinzufügen.

4.2, Hinzufügen von Ereignissen

Wir werden den Controller bearbeiten und erneut anzeigen. Erstellen Sie vor dem Bearbeiten einen neuen Ordner unter Ansichten> Ereignisse.

スクリーンショット 2020-10-29 15.01.34.png

Fügen Sie dem Controller zunächst eine neue Methode hinzu.

/app/controllers/events_controller.rb


class EventsController < ApplicationController
  def index
    @events = Event.all
  end
  #Neue Methode hinzugefügt
  def new
    @event = Event.new
  end
end

Fügen Sie als Nächstes der Ansicht eine Schaltfläche hinzu, um zur Seite "Ereignis hinzufügen" zu gelangen.

/app/views/events/index.html.erb


 
<%= link_to 'Ereigniszusatz', new_event_path %> #←link_zum Nachtrag

<%= month_calendar events: @events do |date, events| %>
  <%= date.day %>
<% end %>

Suchen Sie in Schienenrouten nach dem Übergangsziel "new_event_path".

Es ist ein wenig entgleist, aber als ich wissen wollte, welche Ansicht vom URI-Muster unterstützt wird, stellte ich fest, dass sie angezeigt wurde, indem ich den Cursor gedrückt hielt und "Befehl" + Klick drückte.

URI Pattern /events/new Bewegen Sie den Cursor auf ↑ und drücken Sie "Befehl" + Klicken, um zur entsprechenden Ansicht zu gelangen.

Sie können jetzt zur Seite zum Hinzufügen von Ereignissen wechseln.

Bearbeiten Sie dann die zuvor erstellte neue Datei.

/app/views/events/new.html.erb


<h1>Prüfung</h1>

<%= form_with(model: @event, local: true) do |form| %>

  <div class="title">
    <%= form.label :title %>
    <%= form.text_field :title %>
  </div>

    <div class="time">
    <%= form.label :start_time %>
    <%= form.datetime_select :start_time %>
  </div>

  <div class="content">
    <%= form.label :content %>
    <%= form.text_field :content %>
  </div>


  <div class="submit">
    <%= form.submit %>
  </div>

<% end %>

Es sieht aus wie das. スクリーンショット 2020-10-29 17.57.40.png Eine Eingabeseite (neue Seite) wurde erstellt!

Bearbeiten Sie den Controller, da er nicht gespeichert werden kann.

/app/controllers/events_controller.rb


class EventsController < ApplicationController

#Kürzung

  def create
    Event.create(event_parameter)
    redirect_to root_path
  end

  private

  def event_parameter
    params.require(:event).permit(:title, :content, :start_time)
  end

end

Sie können es speichern, indem Sie die Methode create hinzufügen.

Wenn Sie das Formular ausfüllen und "Sequel Pro" aktivieren, können Sie sehen, dass es gespeichert ist. Es wird jedoch noch nicht im Kalender angezeigt.

4.3, zusätzliche Ereignisse im Kalender anzeigen

Der zuvor gespeicherte Inhalt wird im Kalender angezeigt (angezeigt). Bearbeiten Sie die Ansicht.

/app/views/events/index.html.erb


<%= link_to 'Ereigniszusatz', new_event_path %>

<%= month_calendar events: @events do |date, events| %>
  <%= date.day %>

<%#Ergänzung von hier%>
  <% events.each do |event| %>
    <div>
      <%= event.title %>
    </div>
  <% end %>
<%#Bis hierher addiert%>
<% end %>

Das gerade hinzugefügte Ereignis wird jetzt im Kalender angezeigt.

5. Passen Sie das Erscheinungsbild an

Da das Erscheinungsbild die Standardeinstellung ist, werde ich es arrangieren.

Von der offiziellen Website von Simple Calendar. https://github.com/excid3/simple_calendar/blob/master/README.md

Terminal.


% rails g simple_calendar:views

Sie erhalten eine Datei, die Ihre Ansicht schnell ordnet.

create  app/views/simple_calendar
create  app/views/simple_calendar/_calendar.html.erb
create  app/views/simple_calendar/_month_calendar.html.erb
create  app/views/simple_calendar/_week_calendar.html.erb

Dies wird durch Hinzufügen des Folgenden zu application.css wiedergegeben.

app/assets/stylesheets/application.css


#Kürzung

 *= require simple_calendar #← Nachtrag
 *= require_tree .
 *= require_self

Abschlusszeichnung

スクリーンショット 2020-10-29 17.57.24.png Es wurde abgeschlossen! !! !! Anschließend können Sie durch Hinzufügen von MVC die Bearbeitungs- und Löschfunktion anpassen. Persönlich entwickle ich eine Kundenreservierungsverwaltungsanwendung, daher werde ich sie darauf anwenden.

[Rails] Einführung des einfachen Kalenders in Apps für die persönliche Entwicklung Wird zu einem späteren Zeitpunkt aktualisiert

Zusammenfassung

Dieses Mal habe ich Folgendes in die Mini-App implementiert.

  1. Erstellen Sie eine neue Anwendung
  2. Einführung von simple_calendar
  3. Erstellen einer Vorlage für die Kalenderfunktion
  4. Kalender anzeigen und Funktion "Ereignis hinzufügen" implementieren
  5. Passen Sie das Erscheinungsbild an

Mit der obigen Implementierung ist es möglich, das hinzugefügte Ereignis im Kalender anzuzeigen.

Dieses Mal haben wir die Mindestfunktionalität implementiert, diese muss jedoch gemäß den einzelnen Spezifikationen angepasst werden.

Schließlich

Ich bin ein Anfänger in der Programmierung, aber ich poste einen Artikel in der Hoffnung, dass er Menschen hilft, die ähnlich in Schwierigkeiten sind. Dieses Mal habe ich es als Aufzeichnung der ersten Arbeit zur persönlichen Entwicklung veröffentlicht. Bis zum nächsten Mal ~

Referenz

offiziell https://github.com/excid3/simple_calendar/blob/master/README.md

Diese beiden Artikel waren sehr hilfreich. Vielen Dank! https://qiita.com/miriwo/items/ca2a64bdf8098beccd28 https://qiita.com/isaatsu0131/items/ad1d0a6130fe4fd339d0

Recommended Posts

[Rails] Ich habe eine einfache Kalender-Mini-App mit benutzerdefinierten Spezifikationen erstellt.
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Janken App mit Android gemacht
Ich habe einen LINE Bot mit Rails + Heroku gemacht
Ich habe mit Ruby On Rails ein Portfolio erstellt
Ich habe eine Chat-App erstellt.
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Ich habe eine shopify App @java erstellt
Ich habe mit Swing eine GUI erstellt
Ich habe eine einfache Empfehlungsfunktion erstellt.
Ich habe eine passende App erstellt (Android App)
[Android] Ich habe eine Schrittzähler-App erstellt.
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
[Ruby] Ich habe einen einfachen Ping-Client erstellt
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe eine Taschenrechner-App für Android erstellt
[Rails 5] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Spring Boot eine einfache Such-App
04. Ich habe mit SpringBoot + Thymeleaf ein Frontend gemacht
Ich habe Mosaikkunst mit Pokemon-Bildern gemacht
Veröffentlichen Sie die mit Ruby on Rails erstellte App
Ich habe eine Viewer-App erstellt, die PDF anzeigt
[Rails] Ich habe eine Entwurfsfunktion mit enum erstellt
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Üben Sie das Erstellen einer einfachen Chat-App mit Docker + Sinatra
[Ruby] Ich habe einen Crawler mit Anemone und Nokogiri gemacht.
[Anfänger] Ich bin auf ein Projekt mit Rails6 gestoßen
Ich habe mit der Lautstärketaste mit der Android-App ein Sperrmuster erstellt. Fragment Edition
Nachdem ich einen Artikel mit Rails Simple Calendar veröffentlicht habe, möchte ich ihn im Kalender wiedergeben.
Ich habe versucht, eine japanische Version der Automatik-Mail von Rails / devise zu erstellen
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
Ich habe einen MOD erstellt, der sofort ein Fahrzeug mit Minecraft anruft
Ich bin auf einen Typen mit zwei Punkten in Rails gestoßen
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Ein halbes Jahr Selbststudium unerfahren gemacht SPA mit Rails + Nuxt.js, also schauen Sie bitte
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich möchte eine Browsing-Funktion mit Ruby on Rails hinzufügen
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe kürzlich eine JS-App in der gemunkelten Dart-Sprache erstellt
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
Führen Sie ein einfaches Modell aus, das mit Keras unter iOS mit CoreML erstellt wurde
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Erstellen einer Timer-App mit Schlamm
Erstellen Sie eine neue App mit Rails
Strg-Z funktioniert, es gibt also eine Möglichkeit zu unterbrechen und zu töten: Dies ist mühsam und kann den falschen töten. Sie können dies in ein Python-Skript schreiben. Verfolgen Sie Rails-App-Fehler mit Python, C-Erweiterung Sentry
Ich habe ein Tool zur Generierung von package.xml erstellt.
Ich habe eine Rails-Umgebung mit Docker und MySQL erstellt, aber ich war krank