要するに、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