piątek, 21 września 2012

Jak przesłać więcej niż jedną zawartość pola Ajaxem

W Ruby on Rails jest bardzo wygodna pseudokontrolka observe_field. Jednak w swojej podstawowej postaci można przesłać zawartość tylko tego pola, które jest obserwowane. Aby przesłać za jednym razem zawartość większej ilości pól trzeba się trochę pogimnastykować:
<%= f.text_field :first_name %>
<%= f.text_field :last_name %>
<%= observe_field "employee_last_name",
            :url => {:action => :nazwa_metody_w_kontrolerze},
            :update => "div_to_update",
            :frequency => 1,
            :with => "Form.serializeElements($('employee_last_name', 'employee_first_name'))" %>
No i jest. Teraz w metodzie nazwa_metody_w_kontrolerze zmienna parameters dostarcza nam imię i nazwisko pracownika w postaci:
params[:employee][:first_name]
params[:employee][:last_name]