Sinatra i generowanie JSON
Pracując z Ruby on Rails zacząłem coraz bardziej doceniać możliwości AJAXa i korzystania z zapytań zwracających dane w formacie JSON. O ile wiedziałem jak to się robi w Rails to nie wiedziałem jak zrobić to w Sinatrze. Rozwiązanie okazuje się bardzo proste.
Aktualizacja: W poÅ›cie wprowadzam poprawki bÅ‚Ä™dów wskazanych przez ZajÄ…ca :-)
Potrzebny jest nam gem json:
gem install json
Dołączamy go do naszej aplikacji:
require "json"
NastÄ™pnie metodÄ™, którÄ… wywoÅ‚ujemy poprzez zapytanie ajaxowe (zaÅ‚óżmy, że wysyÅ‚amy formularz metodÄ… post) tworzymy mniej wiÄ™cej tak:
post '/jakas/akcja' do # tutaj jakiÅ› kod, który coÅ› dla nas robicontent_type :jscontent_type: json {:jakis_klucz=>"jakaÅ›_zwracana_wartość"}.to_json end
I to tyle :-) Od strony javascriptu parsujemy dane przy użyciu JSON.parse(zestaw_danych). Nie będę opisywał jak, bo nie taki jest cel tego posta. Od strony javascriptu nie trzeba już niczego parsować, gdyż przychodzący typ danych to już json.
Podpowiedź jak to osiągnąć znalazłem tutaj.
Jak widać cała procedura jest wręcz dziecinnie prosta :-)