2016-09-26 2 views
1

Ich habe nicht viel Vertrautheit mit Rails.Calling Rails Helfer von Javascript

Gibt es eine Möglichkeit, Rails-Skript aus Javascript zu aktualisieren/zu erstellen?

Ich verwende einen Helfer, der Bilder bearbeitet und eine neue Bild-URL erstellt. Ich habe mehrere Bilder auf der Webseite, aber jedes Bild hat 3 URLs mit unterschiedlich großen Bildern, die basierend auf der Bildschirmgröße/-ausrichtung angezeigt werden.

Anstatt 3 divs/img-Tags für jedes Bild zu erstellen und die Hilfslinien dreimal für jedes Bild auszugeben, möchte ich Javascript verwenden, um den Helper aufzurufen und das img srce entsprechend zu aktualisieren.

Ich bin sehr versiert in JS und JQuery, habe aber kaum Erfahrung mit Rails.

Ich habe Skript der HTML-Datei hinzugefügt:

<script> 
    var test = <%= helper('https://url.com', :option1 =>1100, :option2 =>1300;) =%> 

</script> 

Aber das gibt die Konsole Fehler: SyntaxError: missing ; before statement

EDIT:

Auch ist es möglich, JS Variablen in der hinzufügen Helfer Parameter?

<script> 
    var jsVariable1 = 1100 
    var test = <%= helper('https://url.com', :option1 =>JsVariable1, :option2 =>1300;) =%> 

    </script> 

Antwort

0

Haben Sie versucht, Ihr Skript zu ändern.

`

var test = <%= helper('https://url.com', :option1 =>1100, :option2 =>1300) =%>; 

</script>`. 

Sie müssen sich für den Standort ändern; Soweit das Update und das Erstellen betroffen sind. Sie müssen starke Parameter zum Aktualisieren eines Hash verwenden. Als nächstes müssen Sie die gleichen Argumente wie für Name, E-Mail, Nummer übergeben, die Sie einen Hash als {name: "aditya", email: "[email protected]", number: "1"} übergeben müssen.

+0

Ich fügte ein Semikolon am Ende früher hinzu und bekam den gleichen Fehler. Ich fügte es wieder mit den Zahlen in Anführungszeichen hinzu und erhalte immer noch den Fehler. Das ist, was ich habe jetzt: - '' 'var test = <% = Helfer ('https://url.com', option1: "1100", option2: "1300") =%> ; '' ' – auto

+0

Es scheint wie das Problem ist der Doppelpunkt in der URL – auto