2016-06-08 12 views
3

Arbeiten mit dashing.io, um einige tolle Dashboards zu machen. Ich verstehe, dass Dashing mit Ruby und Sinatra erstellt wurde und verwendet .ERB-Dateien in einem bestimmten Verzeichnis, um Dashboards zu erstellen.Verwenden Sie eine Variable in Rubin Edelstein dasing.io - Dashboard .erb-Dateien - sinatra

Ich habe keine Probleme beim Einrichten von Dashing oder das Abrufen von Informationen in meine Dashboards mit den ERB-Jobs.

Ich versuche eine Variable zu verwenden, die aus der uri-Zeichenfolge in einer meiner Dashboard-ERB-Dateien übergeben wird. Das Armaturenbrett Verzeichnis hat auch eine layout.erb Datei, die wie die Vorlage aussieht und das ist, was ich zu setzen bin versucht:

<% group = params["apps"] %> 

aber das gibt mir einen Fehler in sinatra. Im Idealfall möchte ich einen uri-Parameter hinzufügen, um das Dashboard zu ändern. So würde Ich mag meine Instanz von schneidigen treffen bei sample.com:3030/mydashboard läuft fügen Sie ein uri-Parameter sample.com:3030/mydashboard?apps=group1

<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> 
    <div data-id="<% group %>" data-view="List" </div> 
</li> 

und verwenden, um dynamisch meine erb-Datei als solche zu erstellen:

<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> 
    <div data-id="group1" data-view="List" </div> 
</li> 

Ich begann Blick auf erb Layouts in sinatras docs, aber mit so vielen verschiedenen Technologien, die hier miteinander vernetzt sind, bin ich mir nicht sicher, in welcher Reihenfolge die Seite erstellt wird und an welchem ​​Punkt oder in welcher Datei ich diese Änderungen vornehmen müsste.

UPDATE:

Ich dachte, ich einige Fortschritte mache ich das Schmuckstück gegabelt und diese Zeile in der app.rb Datei geändert:

get '/:dashboard/' do 

zu

get '/:dashboard/group/' do 

Das erlaubt mir, dies in meinen Dashboards zu verwenden, um den URL-Parameter <%= params[:group] %> zu bekommen, aber das scheint die Dashboards zu durchbrechen. Gridster zeigt immer noch die Widget-Boxen, aber keine Daten. Dies scheint die view/[widget].html davon zu lösen, auflösbar zu sein, da ich eine Ressource nicht gefunden bekomme.

Antwort

1

Die Antwort darauf war viel einfacher als der Versuch, sich in den schneidigen Edelstein einzumischen, und war meinen ursprünglichen Versuchen sehr nahe. Danke an nauoa65 bei fiverr!

Dies ist, was ich in meinem Dashboard erb brauchte, diese Antwort ist auf der Beispiel-Dashboard.

<!-- The parameter should come from http://sample.com:3030/sample?apps=mytestparam --> 
<% group = params[:apps] || "A default value if parameter is not set" %> 

<!-- The equal sign outputs the content of variable to html --> 
<%= group %> 
2

Dies wurde in einem issue in dashing repo selbst adressiert.

Wie Sie in Ihrem Code verwendet haben, erhalten erb-Dateien Zugriff auf params von Sinatra. So ist es einfach, wie

<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> 
    <div data-id="<%= params[:app] %>" data-view="List" </div> 
</li> 

Und wenn Sie ihn treffen mit

sample.com:3030/mydashboard?apps=group1

data-id wird als gruppe1 genommen werden.

Wenn Sie Abenteuer erleben, können Sie benutzerdefinierte Routen wie die im UPDATE Teil konfigurieren.

Die folgenden Verbindungen werden Ihnen genügend Informationen geben zu tun, dass

How dashboards are accessed with routes
How routing works in sinatra

Auch wenn so viele Technologien in schneidigen verzahnt bis sind, müssen Sie nur in schauen in sinatra Routing und wie es wird in schneidenden

verwendet