Как заставить RABL выводить XML по умолчанию
Как заставить вывод XML с RABL? Он отображает JSON по умолчанию, что прекрасно работает. Когда я захожу на свою страницу с
curl -H "Accept: application/xml" -X GET (myurl)
RABL отображает XML, как и ожидалось. Однако когда я получаю доступ к тому же URL-адресу через браузер, ответ отображается в формате JSON. Я пробовал настройку
ActionView::Template::Handlers::Rabl.default_format = Mime::XML
так же как
render "index.rabl", :content_type => 'application/xml'
В этом случае rails возвращает application/xml в качестве типа содержимого, но все равно возвращает JSON.
Как я могу представить представление моих данных в формате XML без отправки application/xml
как только принять заголовок?
2 ответа
Попробуйте добавить формат по умолчанию к вашему маршруту:
get 'your/url/matcher' => 'controller#method', :defaults => { :format => :xml }
На какой версии Rails вы работаете? Я уверен, что если вы сделаете это, например:
respond_to do |format|
format.xml # renders rabl as xml
format.json # render rabl as json
end
Но это в Rails 2. Я уверен, что есть эквивалент для 3.