Ich bin ziemlich neu zu Rubin auf Schienen ... Auf meinem _form.html.erb
Ich habe ein collection_select
Feld, das von einem Modell namens Produkt bevölkert ist. Die Tabellenspalten des Produkts lauten id, name, and price
. Sobald ich einen Artikel (Produkt) aus der Sammlung ausgewählt habe, möchte ich ein Textfeld mit dem Preis des ausgewählten Produkts ausfüllen.Wie rufe ich eine Ruby-Methode auf, wenn: onchange-Event ausgelöst wird (Ruby auf Rails 4)?
Bisher habe ich den folgenden Code IOT ein Ereignis auslösen, wenn ein Element auswählen:
<%= collection_select(:warehouse, :product_id, Product.all, :id, :name, {}, {:onchange => "alert('Hello World');"})%>
Wie kann ich ein Rubin-Methode aufrufen, die mir die text_field mit dem entsprechenden Preis für das ausgewählte Produkt füllen lassen würde?
Für die Methode, die ich so etwas wie ...
def set_price
@price = Product.find(params[:id]).price
end
Gibt es eine andere Möglichkeit, dies ohne AJAX durchzuführen. In C# war ich in der Lage, diese Aufgabe zu erledigen, indem ich die Controls-Ereignisse durch Callbacks behandelte. Ist es möglich, die collection_select-Ereignisse durch Rückrufe in Ruby zu behandeln? Wenn nicht, was ist die beste Praxis, um das Erforderliche zu erreichen? –
'ASP.net' Callback-System basiert auf AJAX auch (wenn Sie Javascript als Ihre Client-Seite Skriptsprache wählen). Weitere Informationen finden Sie unter [https://msdn.microsoft.com/en-us/library/ms178208.aspx](https://msdn.microsoft.com/en-us/library/ms178208.aspx]. – Aetherus
Sie haben absolut Recht. Ich werde diesen Ansatz versuchen. Vielen Dank für Ihre Hilfe Aetherus –