Я использую respond_with
и все правильно подключено для правильного получения данных. Я хочу настроить возвращенные форматы json
, xml
и foobar
в СУХОЙ форме, но не могу понять, как это сделать, используя ограниченные значения :only
и :include
. Это замечательно, когда данные просты, но со сложными находками они не соответствуют тому, что я хочу.
Допустим, у меня есть сообщение, has_many
изображения
def show
@post = Post.find params[:id]
respond_with(@post)
end
Я хочу включить изображения в ответ, чтобы я мог сделать это:
def show
@post = Post.find params[:id]
respond_with(@post, :include => :images)
end
но я действительно не хочу отправлять весь объект изображения, только URL. В дополнение к этому я действительно хочу иметь возможность делать что-то подобное (псевдокод):
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
… но все СУХОЙ способ. В более старых проектах rails я использовал XML-компоновщики для настройки вывода, но реплицировал его через json, xml, html, что не кажется правильным. Я должен представить, что гуру рельсов поместили что-то в Rails 3, что я не понимаю для этого типа поведения. Идеи?