Używam respond_with
i wszystko jest podłączone, aby uzyskać prawidłowe dane. Chcę dostosować zwrócone formaty json
, xml
i foobar
w sposób DRY, ale nie mogę się dowiedzieć, jak to zrobić, używając ograniczonych :only
i :include
. Te są świetne, gdy dane są proste, ale ze złożonymi znaleziskami, brakuje im tego, czego chcę.Jak dostosować odpowiedź to_json w Railsach 3
Powiedzmy mam post który has_many
zdjęć
def show
@post = Post.find params[:id]
respond_with(@post)
end
Chcę zawierać obrazy z odpowiedzią, więc mogłem to zrobić:
def show
@post = Post.find params[:id]
respond_with(@post, :include => :images)
end
ale ja naprawdę nie chcesz wysłać cały obiekt obrazu wzdłuż, tylko adres URL. Poza tym, ja naprawdę chcę być w stanie zrobić coś takiego, jak również (pseudokod):
def show
@post = Post.find params[:id]
respond_with(@post, :include => { :foo => @posts.each.really_cool_method })
end
def index
@post = Post.find params[:id]
respond_with(@post, :include => { :foo => @post.really_cool_method })
end
... ale w suchej drodze. W starszych projektach rails użyłem konstruktorów XML, aby dostosować dane wyjściowe, ale replikować je w json, xml, html, co nie wydaje się właściwe. Muszę sobie wyobrazić, że kolejni guru umieścili coś w Rails 3, czego nie rozumiem dla tego typu zachowań. Pomysły?
Ten link to 404. – lashleigh
https://github.com/fabrik42/acts_as_api – coneybeare