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 :-)