Laden von Javascript pro Controller in Schienen

9

JavaScript-Datei pro Ansicht in Rails

Ich habe ähnliche Threads untersucht, aber ich kann nicht fangen. Unten ist meine application.js Datei.

%Vor%

Ich habe eine Verzeichnisstruktur meiner Assets-Pipeline wie folgt:

%Vor%

Wie würde ich das Verzeichnis misc für alle Seiten und home.js für HomeController und session.js für SessionController laden. Ich möchte nicht, dass unerwünschtes JS überall geladen wird.

    
theJava 14.05.2014, 12:05
quelle

2 Antworten

9

Wie von Dave gezeigt, können Sie die vorgeschlagene Lösung für seine verknüpfte Frage verwenden, d. h. indem Sie Folgendes tun:

%Vor%

Das Einzige, an das Sie sich erinnern sollten, ist, dass Sie Ihren Javascript-Assets die Namen der Controller nennen - also home.js und sessions.js in Ihrem Fall (wenn ich mich an die Namenskonventionen von Rails erinnere) / p>

Ich habe jedoch andere Möglichkeiten gesehen, dies zu tun, was nützlich ist, wenn Sie aus irgendeinem Grund Javascript auf Seiten einfügen möchten, die mit verschiedenen Controllern verknüpft sind. Diese Antwort, ich denke, gibt eine sehr elegante Lösung.

Fügen Sie zuerst die globalen Javascripts zu Ihrer Manifestdatei hinzu und fügen Sie diese in Ihre application.html.erb Layoutdatei ein.

%Vor%

Und in den Ansichten, in denen Sie bestimmte Javascripts laden würden, fügen Sie einfach Folgendes hinzu:

%Vor%     
nicohvi 14.05.2014, 12:44
quelle
2

Das Problem mit der obigen Lösung ist, dass eine zusätzliche Anforderung für verschiedene JS-Dateien für jeden Controller erforderlich ist. Die bessere Lösung besteht darin, alle JS so zu organisieren, dass sie mit der Asset-Pipeline in eine einzige Datei kompiliert und dann basierend auf dem aktuellen Controller und der aktuellen Aktion aufgerufen werden können.

Es gibt ein paar Edelsteine ​​da draußen, die sich darum kümmern. RailsScript ist ein einfaches Skript, das JS-Objekte aufruft, die nach dem aktuellen Controller benannt sind, und dann eine Methode in diesem Objekt aufruft, die nach der aktuellen Aktion benannt ist. Dies macht das Schreiben und Verwalten von seitenspezifischem JavaScript für Rails sehr einfach.

Ссылка

d. h.

%Vor%

Da RailsScript auch mit Turoblinks kompatibel ist, müssen Ihre Benutzer die JS- und CSS-Assets nur einmal laden! Nicht auf jeder Seite.

    
KPheasey 02.11.2014 15:24
quelle

Tags und Links