Zastanawiam się gdzie generować json. To raczej nie warstwa modelu a widoku.
Jednak w rails używa się przewaznie to_json na modelu problem jest tylko taki, że chciałbym w danych zwracanych przez jsona
zawrzeć np adres www do avatara, czy np do szczegołów danej treści (wystarczy zobaczyć na api blip.pl by zrozumieć, że przekazywanie adresów w jsonie jest czesto potrzebne).
Jakieś sugestie? generować z routes adresy w modelu?
Najlepszy pomysł na jaki wpadliśmy, to wykorzystanie do tego celu helperów. Można wtedy dość mocno odchudzić kontroler, tworząc zwykły szablon ERB, a całą resztę podzielić na niewielkie metody w helperze. Kod helpera jest u nas dość mocno rozgrzebany, jednak jest to spowodowane dość dużymi zmianami jakie zaszły w strukturze JSON-a (kod trzeba zrefaktoryzować).
Metoda jest przydatna do generowania prostych JSON-ów. Minusem jest to, że powstaje dość mocny bałagan w kontrolerach.
Co wiąże się ze złamaniem wzorca MVC i jest problematyczne w przypadku gdy w JSON-ie potrzebujemy helperów do ścieżek, current_usera, itp. Często w aplikacji jeden model musi mieć wiele metod “to_json”.
Dawno z tego nie korzystałem. Podobnie jak w przypadku model.to_json da się nią wygenerować jakieś w miarę proste struktury, rozwiązanie z helperem jest dużo bardziej elastyczne.