Вы можете отправить суффикс имени файла, как подсказывает Круле, но я считаю, что Rails определяет, какой тип контента выбрать, изучив значение заголовка HTTP Accept
(см. Согласование содержимого в Википедии). В псевдокоде
$data = fetch_some_data();
switch (get_preferred_response_type($_SERVER['HTTP_ACCEPT'])) {
case 'text/html':
render_html($data); break;
case 'application/xml':
render_xml($data);
case 'application/json':
render_json($data);
// etc...
}
Функция get_preferred_response_type()
должна будет проанализировать заголовок Accept
и вернуть предпочтительный тип MIME клиента. Здесь - пример такой функции, которая должна помочь вам начать работу; в противном случае есть библиотека согласования контента для PHP, которая сделает всю грязную работу за вас.
Надеюсь, это поможет!