2016-09-23 1 views
-1

Ich baue eine einfache Wegfindung App für ein Gebäude in Rails mit der Mapplic jQuery Plugin.So rufen Sie JSON-Dateien über jQuery in Rails auf?

Das Skript erwartet eine JSON-Datei, die es wie so nennt:

$('#floor-5').mapplic({ 
    source: 'floor-5.json', 
    height: 1000, 
    minimap: false, 
    sidebar: true, 
    hovertip: true, 
    developer: false, 
    maxscale: 3 
}); 

ich die JSON-Datei in app/assets/json/floor-5.json haben.

Ich denke, dass das jQuery-Skript versucht, AJAX zu verwenden, von dem ich weiß, dass es in Rails problematisch ist.

Die JS- und CSS-Dateien werden ordnungsgemäß über die Asset-Pipeline aufgerufen, aber ich bin mir nicht sicher, wie ich über die Asset-Pipeline ordnungsgemäß auf die erforderliche JSON-Datei zugreifen kann.

Die JSON-Datei lädt dann das Bild, um es will über AJAX verwenden:

{ 
    "mapwidth":"1080", 
    "mapheight": "1000", 
    "levels": [ 
    { 
     "id" : "floor-5", 
     "map" : "/assets/images/floor-5.png", 
     "minimap" : "/assets/images/floor-5.png" 
     } 
    ] 
} 

Wie vereinbaren ich diese AJAX-Aufrufe mit der Asset-Pipeline?

+1

Wie ist AJAX für Rails problematisch? Schwierigkeiten haben, diese Frage zu verstehen. Versuchen Sie, ein JavaScript-Objekt in einer statischen Datei zu referenzieren? –

+0

NickM, Ich habe eine Menge Probleme zu verstehen, wie dieses bestimmte jQuery-Plugin auf Dateien verweist, und es ergibt keinen Sinn für mich innerhalb der Rails-Asset-Pipeline. Das macht es für mich schwieriger, eine Frage zu formulieren. In einer Ansicht verweist jQuery auf eine Quell-JSON-Datei mit AJAX, und die JSON-Datei referenziert erneut eine Bilddatei mit AJAX. Das ist eine ungewohnte Struktur für mich, und ich kann mich nicht damit abfinden. Ich kann das nicht so machen, wie es soll, was dazu führen sollte, dass das Bild in das DOM geladen wird, mit einigen zusätzlichen Steuerelementen über dem Bild. – Allen

+0

Aktualisierung: Gelöst. Das Problem war nicht AJAX, es war JSON ungültig. Ich habe diesen JSON-Validator verwendet und die Fehler behoben: https://jsonformatter.curiousconcept.com/ – Allen

Antwort

0

Möglicherweise haben Sie ungültige JSON. Wenn sich Ihre Assets alle in den richtigen Ordnern innerhalb der Rails-Asset-Pipeline befinden, sollte Rails keine Probleme haben, diese Dateien mit AJAX zu finden. Wenn Sie jedoch ungültiges JSON haben, wird derselbe Fehler ausgegeben, als ob die Datei überhaupt nicht geladen werden kann. Verwenden Sie einen JSON-Validator und prüfen Sie, ob das das Problem behebt: https://jsonformatter.curiousconcept.com/