2016-05-29 9 views
0

Dieses Beispiel der Verwendung von Ajax in Rails http://www.kunce.net/2013/10/ror-dynamic-dropdown-box-with-ajax/ Ich habe es nicht funktioniert, was mache ich falsch? Die Dose muss gem verbunden werden oder ist es ustanevshy Methode, die nicht funktioniert? Ich muss zu den DIVAS-Daten gelangen, die der Benutzer in der Auswahl ausgewählt hat, ohne die Seite zu aktualisieren. Ausblick:Verwenden Sie Ajax in Schienen

<div id="select_div"> 
    <select name="city_id" id="city_id"> 
     <option value="0">Lisbon</option> 
     <option value="1">Madrid</option> 
     <option value="2">Prague</option> 
    </select> 
</div> 
<div id="result_div"> 
    <h4>Lisbon is selected</h4> 
</div> 

<script> 
    $(document).ready(function() { 
    $('#city_id').change(function() { 
     $.ajax({ 
      url: "<%= update_text_path %>", 
      data: { 
       city_name: $("#city_id option:selected").text() 
      }, 
      dataType: "script" 
     }); 
    }); 
    }); 
</script> 

routes.rb:

get "static_pages/update_text", as: "update_text" 

Controller static_pages:

def update_text 
    @city_text = params[:city_name] 
end 

views/static_pages/update_text.js.erb

$('#result_div').html("<h4>You have changed the city to: <%= @city_text %></h4>"); 
+0

Was bedeutet "nicht funktioniert"? Ändert sich in Ihrem Browser etwas? Was zeigt Ihr Serverprotokoll? –

+0

Lanny Bose, Änderungen im Browser ist nicht im Terminal schreiben: [2016-05-30 00:24:37] FEHLER schlecht URI '/% 3C% =% 20city_id% 20 %% 3E? City_id = 2 & _ = 1464557016658 ". –

+0

Versuchen Sie, die Anführungszeichen um "<% = update_text_path%>" zu entfernen. Kann es doppelt zitiert werden? –

Antwort

0

Die wörtliche Wert <%= update_text_path %> scheint als URL verwendet zu werden. Überprüfen Sie, ob Ihre Datei den Namen app/views/static_pages/home.html.erb hat und nicht app/views/static_pages/home.html. Nur die Datei .erb kann ERB-Markup verwenden.

+0

Ich benutze app/views/static_pages/home.html.erb –

Verwandte Themen