要するに、XMLやJSONでのレスポンスですね。
def get_xml books = Book.all render :xml => books end
def get_json books = Book.all render :json => books end
def get_xml_text render :xml => '<error>エラー発生</error>' end def get_json_text render :json => { :data1 => 'データ1', :data2 => ['データ2-1','データ2-2']} end
def xml_erb @book = Book.find(params[:id]) respond_to do |format| format.xml end end
<?xml version="1.9" encoding="utf-8" ?> <book isbn="<%= @book.isbn %>"> <title><%= @book.title %></title> <price><%= @book.price %></price> <publish><%= @book.publish %></publish> </book>
C:\Ruby192\lib\ruby\gems\1.9.1\gems\actionpack-3.1.0\lib\action_dispatch\http\mime_types.rb
Mime::Type.register "text/richtext", :rtf
def index @books = Book.all respond_to do |format| format.html # index.html.erb format.json { render json: @books } end end
respond_to :html,:json def index @books = Book.all respond_with @books end
xml.book(:isbn => @book.isbn) do xml.title(@book.title) xml.price(@book.price) xml.publish(@book.publish) end
respond_to :html,:json,:atom
atom_feed do |feed| feed.title('最新書籍情報') feed.updated(@books.last.created_at) @books.each do |book| feed.entry(book, :url => "http://www.hmv.co.jp/search/?target=BOOKSISBN&catnum=#{book.isbn}", :published => book.published, :updated => book.published) do |entry| entry.title(book.title) entry.content("#{book.publish}刊 #{book.price}円") entry.author do |author| author.name(book.authors[0].name) end end end end