34

私が理解しているように、Sinatra フレームワークは Rails とは異なり、ORM を提供しません。その場合、Sinatra アプリでどのように DB と対話しますか? それとも Sinatra は DB を使用しないアプリ専用ですか?

4

3 に答える 3

63

Sinatra を使用している場合、DataMapperを十分に推奨することはできません。私はいくつかの Rails アプリで ActiveRecord に行き詰まっており、常に ActiveRecord の欠点と設計上の欠陥を呪っています。Sinatra を使用している場合、DataMapper は非常に実用的な選択肢です。

require "rubygems"
require "sinatra"
require "datamapper"

DataMapper.setup(:default, "sqlite3::memory:")

class Post
  include DataMapper::Resource

  property :id,    Integer, :serial => true
  property :title, String
end

Post.auto_migrate!
first_post = Post.new
first_post.title = "First!"
first_post.save

get "/" do
  Post.get(1).title
end
于 2009-04-24T18:01:53.050 に答える
31

ActiveRecordが好きなら、それを使ってください。または、他の何か。たとえば、データマッパー。AR と SQLite の場合、これは機能します。

require 'rubygems' # may not be needed, depending on platform
require 'sinatra'
require 'active_record'

class Article < ActiveRecord::Base
end

get '/' do
  Article.establish_connection(
    :adapter => "sqlite3",
    :database => "hw.db"
  )
  Article.first.title
end
于 2009-04-22T15:24:58.057 に答える