2009-04-22 3 views

답변

26

ActiveRecord가 마음에 들면 사용하십시오. 또는 다른 것. 예를 들어, Datamapper. SQLite는과 AR,이 작품 :

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 
+9

'activerecord'가 사용되지 않으므로 대신 'require active_record'를 사용하십시오. – tks

60

당신이시나를 사용하는 경우, 내가보기 엔 충분히 DataMapper을 권장하지 않습니다. 필자는 ActiveRecord가 붙어있는 몇 개의 Rails 애플리케이션을 가지고 있으며, 그 단점과 디자인 결함을 끊임없이 저주하고 있습니다. 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 
+0

DataMapper를 살펴 보겠습니다. 코드 샘플을 보내 주셔서 감사합니다. –

+0

'DataMapper.setup (: default, "sqlite3 :: memory")'을 사용하면 im-memory db입니까? 어떻게 그것을 디스크에 유지하거나 기존 sqlite db 파일을 어떻게 열겠습니까? – LoveMeSomeCode

+12

'DataMapper.setup (: default, "sqlite3 : path/to/db/file.db")' –

0

데이터베이스와 통신하는 방법은 ORM 또는 NoSQL 어댑터 중 하나를 선택할 수 있습니다.

예를 들어

, 원래 블레이크 Mizerany,시나
의 창조자 그것은 액티브 도우미 방법과 레이크 작업

와시나를 확장하여 만든 Sinatra ActiveRecord Extension
가 : 가능한 많은 옵션이 그들 중 일부는시나 위해 특별히 만들어진이 있습니다

다른 옵션은 Sinatra Sequel Extension입니다.
이 작은 확장은 데이터베이스 구성, 마이그레이션 및 Sequel 어댑터를 Sinatra에 추가합니다.

또는 sinatra-redis 또는 sinatra-mongo 등. 원하는 것을 검색하십시오.

독립적 인 라이브러리를 자유롭게 사용할 수도 있지만 Sinatra Recipes on databases을 확인하십시오. Sinatra에서 널리 사용되는 데이터베이스 매퍼를 사용하는 방법에 대한 몇 가지 예가 나와 있습니다. 거기에 언급되어 있지만, 이것에 대한 권장 관례는 DataMapper를 사용하는 것입니다. 나는 이것이 Sinatra 자체에서 아무것도 제시하지 않았기 때문에 이것이 단순한 선호라고 생각합니다.

관련 문제