Λάδι Βιώσας

http://profile.hatena.ne.jp/kenkitii/

Datamapper メモ

install

gem install dm-core dm-sqlite-adapter dm-migrations

入れたもの

  • dm-core (1.0.2)
  • dm-migrations (1.0.2) # auto_upgrade するのに必要
  • dm-sqlite-adapter (1.0.2) # sqlite3 を使うのに必要

hello world

# -*- coding: utf-8 -*-
require 'rubygems'
require 'dm-core'
require 'dm-migrations'

DataMapper::setup(:default, 'sqlite3:db.sqlite3')

class Post 
  include DataMapper::Resource
  property :id, Serial # 主キー
  property :content, Text
  auto_upgrade!
end

Post.create :content => "hello datamapper"

xs = Post.all(:order => [:id.desc])
puts xs.first.content

auto_upgrade!は,モデルからテーブルを自動生成する DataMapper のメソッド。

key

auto-increment な rails みたいな primary key にしたい場合はこんな感じ↓

property :id, Serial

主キーを複数にしたり自前で用意する場合は、:key = true で。

property :id,  String, :key => true
property :id2, String, :key => true

insert

「id = 1 のレコードが存在しない場合、id = 1 のレコード追加」とかしたいとき↓こんなんすると楽

post = Post.first_or_create(:id => 1, :content => 'Hello Datamapper!!!')
post.save