Ruby: Sinatra で API 実装と ActiveRecord で JSON 出力

データベースから ActiveRecord 経由でデータを拾いつつ、テンプレートと JSON を返す API に展開する例。
ActiveRecord の場合 .to_json を付けるだけで json 化されるので鼻毛が全部抜け落ちる勢いで感動する。

Ruby: sample.ruby

# encoding: utf-8
require 'active_record'
require 'sinatra'
require 'sinatra/reloader'

# 接続
ActiveRecord::Base.establish_connection(
    "adapter" => "sqlite3",
    "database" => "./data.db"
)

class Entry < ActiveRecord::Base
end

# 普通に / でアクセスしてきた時
get '/' do
    @entries = Entry.order("id desc").to_json
    erb :index
end

# /api/all にアクセスしてきた時
get '/api/all' do
    # Entry テーブルから id 降順で全部取得 して JSON にしちゃう
    @entries = Entry.order("id desc").to_json
end