飲んだり寝たり

だいたいメモ

SinatraでActiveRecord使う

SinatraでHello Worldするまでの続きとして. SQLiteの場合.

Gemfileに以下を追加してbundle installする.

1
2
gem 'sinatra-activerecord'
gem 'sqlite3'

DB接続部分を書く. とりあえずapp.rbに書いた.

1
2
3
4
5
6
7
8
9
require 'sinatra'
require 'active_record'

ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: 'development.sqlite3'
)

# 以下省略

Rakefile書く.

1
2
require 'sinatra/activerecord/rake'
require './app'

これでrake db:migrateとか出来るようになった. 今回はとりあえずusersテーブル作る. rake -Tすれば可能なコマンド一覧が見れる.

1
bundle exec rake db:create_migration NAME=create_users

するとdb/migrateの中にmigrationファイルが作られるので編集する.

1
2
3
4
5
6
7
8
9
class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name

      t.timestamps
    end
  end
end

終わったらDBに反映.

1
bundle exec rake db:migrate

app.rbで使ってみる.

1
2
3
4
5
6
7
8
# 上は省略

class User < ActiveRecord::Base
end

get '/' do
  "Hello #{User.count} users!"
end

あとは

1
bundle exec rackup

して, http://localhost:9292にアクセスして確認.

Comments