Blog jak widać już nie jest aktualizowany. I raczej nie będzie. Wisi sobie ot tak, ze względów historycznych :)

Sinatra i generowanie JSON

Krzysztof Rygielski | 2010-04-06 23:25 | Kategorie: Ruby, Sinatra

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 robi

  content_type :js
  content_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 :-)