2017-05-18 5 views
0

Ich möchte die Daten von Ajax Anfrage in meinem method_name.js.erb gesendet bekommen.wie ajax Daten an .js.erb Rails senden

Es sendet die Anforderung erfolgreich, aber das Problem ist, dass ich nicht in der Lage kann

die Daten zu erhalten, in Ajax gesendet werden.

tatsächlichen AJAX-Code:

var a = 1; 
$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

method_name.js.erb Code:

var_is = var #I want var value here 
$('#dialog').modal("show"); 

Ajax-Link:

Started GET "/admin/method_name?var=1&_=1495145400545" for 127.0.0.1 at 
2017-05-19 03:12:23 +0500 

Wie kann ich Ajax-Daten in .js.erb bekommen?

Antwort

1
$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

Erstellt eine Anfrage an /admin/method_name/?var="foo".

Sie können den Wert des var Param in Ihrer Rails App von params[:var] erhalten - genau wie bei jedem anderen Parameter.

+0

Gibt es eine Möglichkeit, dass ich diese alle Daten auf meiner 'method_name.js.erb' empfangen kann? Vom Controller oder einer anderen Art erklären Sie bitte? Ich weiß, was du meinst, indem du das sagst, aber ich wollte mit einer einzigartigen Methode umgehen. Ich könnte mich in Bezug auf meine Logik irren. – LearningROR

+1

Vielleicht solltest du mit dem Erlernen der Grundlagen von Schienen beginnen, bevor du versuchst, Ajax anzugehen? Mit dem Parameter-Hash können Sie auf die eingehenden Parameter zugreifen. Es gibt keinen wirklichen Weg, wie ich dir das erklären kann, wenn du nicht einmal die grundlegenden Konzepte verstehst. Http://guides.rubyonrails.org/getting_started.html – max

+0

Gut, höflich, du bringst mich nicht mit dem, was ich versuche wieder zu sagen und auch in Frage. Einfache Antwort könnte keine Möglichkeit oder irgendeine andere gute Antwort sein. Vielen Dank. – LearningROR

1

Vor diesem Code:

$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

Sie können die param var Aktion in Ihrem Controller wie folgt aus dem Titel zuzugreifen:

def method_name 
    @var = params[:var] 
end 

Nun, wenn Schienen Ihre method_name.js.erb Datei macht, werden Sie Zugang zu der @var Parameter von der Steuerung.

Die Art und Weise, wie die Rails Variablen von Controllern zu Sichten mit der Syntax @variable_name übergibt, entspricht exakt der Art und Weise, wie Rails Variablen an js.erb Dateien übergibt.

sicherzustellen, dass alles richtig funktioniert, schreiben Sie folgendes in method_name.js.erb Datei:

console.log("<%= j @var %>"); 

Wenn Sie Ihren Browser öffnen meldet, sollten Sie den Wert des a Parameter sehen Sie über Ihre Ajax in die Steuerung übergeben anfordern.

Weitere Informationen über die Schienen und Ajax, können Sie read the documentation here.

+0

1+ für gut erklärte Antwort. Schon erledigt. Vielen Dank. :) – LearningROR

Verwandte Themen