[RAILS] Wenn das Formular wie "Auswählen von Materialisieren" nicht ordnungsgemäß funktioniert

Fazit

Es kann funktionieren, wenn Turbolinks deaktiviert sind.

Hintergrund zur Fehlerbehebung

Was ist Materialisieren?

Ein CSS-Framework, das die Einführung von Materialdesign erleichtert. Es ist gut, die mit Bootstrap fertiggestellte Benutzeroberfläche bereinigen zu können. Es gibt jedoch eindeutige Einstellungen und Einschränkungen bei der Verwendung jeder Komponente, und es ist ziemlich eigenartig.

Matelialize ist verwirrend

(Wählen Sie ein Formular aus, das mit normalen Schienen erstellt wurde)
<%= f.label :column %>
<%= f.select :column, ~ %>

(Beim Erstellen einer Auswahl mit Materialisieren)
<%= f.select :column, ~ %>
<%= f.label :column %>

Dann wird Ihnen klar, dass Sie es schnell mit Rails-Formularen ausfüllen möchten. ... Ich sehe das Rails-Formular nach der Installation von Materialise nicht.

Also habe ich es geschafft, ausgewählte Arbeiten zum Laufen zu bringen, und als ich damit herumgespielt habe, habe ich den Fehler bekommen, dass es nicht richtig funktioniert hat, wie der Titel sagt.

Die Ursache finden

Annahme

--JS wird von Sprockets verwaltet

Fehlerbehebungsverfahren

"Formular funktioniert nicht ordnungsgemäß" bedeutet, dass die Auswahl nur angezeigt wird, wenn die Seite neu geladen wird. Es gab keinen Fehler in der Konsole.

Wenn jQuery nicht richtig gelesen werden kann, gehen Sie daher vorübergehend davon aus.

layouts/application.html.erb und Vermögen/javascripts/application.js


 bestätigen.

 Ich fand einen Ort, um den ich mir Sorgen machen musste.

<%= javascript_include_tag 'application', data-turbolinks-track': 'reload' %>


 Um nach Turbolinks als Schlüsselwort zu suchen.

## Probleme mit Turbolinks

#### **`$(document).ready(function()Zündet nicht`**
```ready(function()Zündet nicht


 Die Hauptoperation von Turbolinks ist

- fetchReplacement
 <a> Tag-Links in Ajax konvertieren

- fetchHistory
 Stellen Sie beim Ändern von Seiten durch Zurückgeben wieder her, ob die Seite wiederhergestellt werden kann

 Es scheint, dass `` `ready``` bei keiner der oben genannten Operationen ausgelöst wird.

## Wenn Sie jQuery verwenden möchten, während Sie Turbolinks verwenden
 --``` $ (Dokument) .on'ready page: load'`` `
 Definieren Sie sowohl `` `ready``` in jQuery als auch` `` page: load``` in Turbolinks

 - Lassen Sie die oben genannten Maßnahmen mit `` `jquery-turbolinks gem``` treffen

 - Deaktivierbare Turbolinks

## Verfahren zum Deaktivieren von Turbolinks

(Gemfile) gem 'turbolinks' #Löschen


(assets/javascripts/application.js) //= require jquery //= require materialize //= require turbolinks #Löschen //= require rails-ujs //= require_tree .


(layouts/application.html.erb)

<%= stylesheet_link_tag 'application', media: 'all' %> - <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> + <%= javascript_include_tag 'application' %> - <%= javascript_include_tag 'materialize', 'data-turbolinks-track': 'reload' %> + <%= javascript_include_tag 'materialize' %> ```

Bei Materialisieren funktioniert select nicht nur unter bestimmten Umständen

  1. Klonen Sie den offiziellen Github https://github.com/Dogfalo/materialize
  2. Platzieren Sie `` `js / select.js``` unter Ihrer Umgebung (wo JS geladen wird)
  3. Laden Sie `` `select.js``` in assets / javascripts / application.js

Das obige Verfahren scheint effektiv zu sein, wenn der Vorgang unter iOS 13 usw. nicht gut verläuft.

Referenz

[Was ich getan habe, um die Turbolinks fernzuhalten](https://qiita.com/saboyutaka/items/bcc0966313c6f7399a6e#trigger%E3%81%AE%E7%99%BA%E7%81%AB%E3%82 % BF% E3% 82% A4% E3% 83% 9F% E3% 83% B3% E3% 82% B0)

Das Formularauswahl-Tag mit materialise kann unter iOS 13 nicht korrekt ausgewählt werden

[Rails] Turbolinks deaktivieren

Recommended Posts

Wenn das Formular wie "Auswählen von Materialisieren" nicht ordnungsgemäß funktioniert
Wenn @Transactional of Spring Boot nicht funktioniert
Zu der Sache, dass: n-tes Kind (-n + m) im Selektor von jsoup nicht wie beabsichtigt funktioniert
Funktioniert die Escape-Sequenz (\) nicht? (für Mac)
@BeforeStep funktioniert nicht mit Spring-Batch-Tasklet
Erkennt die Bibliothek bei der Implementierung von jcaptcha nicht
Im Warndialog beim Starten des Applets funktioniert die Prüfung "Beim nächsten Mal nicht anzeigen" nicht
Passen Sie die Anzeige an, wenn im Spring Boot ein Fehler wie 404 Not Found auftritt
[Hinweis] Wenn die Seitenzugriffsgeschwindigkeit nicht erhöht wird
Ein Memo beim Abrufen der eingehenden Nummer mit Broadcast Receiver unter Android 9/10 funktioniert nicht
[Ruby on Rails] Wenn die ID-Erfassung des Parameters nicht gut lief
[Rails] Behebung des Problems, dass das Sitzungszeitlimit nicht funktioniert
[Schienen] Wenn die Layoutänderung des Geräts nicht berücksichtigt wird
So erhalten Sie das Protokoll, wenn install4j nicht gestartet wird
Was tun, wenn "Relation" hibernate_sequence "nicht existiert" in der ID-Spalte von PostgreSQL + JPA
Testen Sie das Verhalten des Protokollausgabeprotokollierers, wenn Sie eine externe Protokollierungs-API wie SLF4J verwenden
Feder sollte vermutet werden, wenn Rails-Befehle nicht richtig funktionieren
Pay.JP-Lösung, wenn sie lokal funktioniert, aber in der Produktionsumgebung nicht gut funktioniert