2016-03-30 4 views
-1

ich auf Form training_project bin habe ich ein select2 Element:Wie Code nach der Auswahl des Artikels in einem Formular auf Ruby on Rails ausführen?

<%= f.input_field :contractId, collection: Contract.all, prompt: 'Convenzione', class: 'form-control select2' %> 

, nachdem der Benutzer wählen Sie den Vertrag i tun müssen:

<% @contract = Contract.find(@training_project.contractId) 
@training_project.farmId = @contract.farmId 
@farm = Farm.find(@training_project.farmId) if @training_project.farmId && Farm.exists?(@training_project.farmId) %> 

All dies für erhalten die Farm Informationen in Beziehung mit dem ausgewählten Vertrag.

Danke für Ihre Hilfe!

Antwort

0

zwei Lösungen, eine ohne JS

Formular an den Server übermittelt werden muss. Dazu benötigen Sie eine Route, einen Controller und eine Aktion.

und ein mit JS:

Sie benötigen ein Änderungsereignis und lösen einen AJAX-Aufruf zu einer Aktion in einem Controller (siehe oben) zu registrieren.

Bitte untersuchen Sie dies ein wenig weiter und geben Sie weitere Details, wenn Sie weitere Hilfe benötigen.

Bitte beachten Sie auch, dass in Ruby snake_case über camelCase bevorzugt wird. Also schlage ich vor, Sie ändern contractId zu contract_id und so weiter.

+0

danke dir, ich denke, es wird mit AJAX tun. Ok, jetzt wechsle ich zu snake_case. –

+0

Ich würde zuerst für die Nicht-AJAX-Lösung gehen. Das Senden von Standardformularen ist einfacher als AJAX. Aber vielleicht weiß ich nicht genug über das Problem. –

+0

Das Formular ist zu lang, in dieser Form gibt es einige Felder, die nach der Auswahl automatisch vervollständigt werden müssen ... Wie kann ich Wert nicht in der Form speichern, sondern mit dem AJAX bekommen? –