Ресурс Rails предоставляет RESTful-интерфейс для вашей модели. Посмотрим.
Модель
class Contact < ActiveRecord::Base
...
end
Маршруты
map.resources :contacts
Контроллер
class ContactsController < ApplicationController
...
def show
@contact = Contact.find(params[:id]
respond_to do |format|
format.html
format.xml {render :xml => @contact}
format.js {render :json => @contact.json}
end
end
...
end
Таким образом, это дает вам интерфейсы API без необходимости определять специальные методы для получения требуемого типа ответа
Например.
/contacts/1 # Responds with regular html page
/contacts/1.xml # Responds with xml output of Contact.find(1) and its attributes
/contacts/1.js # Responds with json output of Contact.find(1) and its attributes