シナトラを使用しているデータベースに話をするための最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/777724

  •  13-09-2019
  •  | 
  •  

質問

私の理解では、シナトラフレームワークは、Railsのとは違って、ORMを提供していません。その場合には、どのようにシナトラアプリでDBに話をしますか?またはシナトラが唯一のDBを使用しないアプリケーションのためにあるのですか?

役に立ちましたか?

解決

あなたは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

他のヒント

あなたはシナトラを使用している場合は、

、私は非常に十分な DataMapperのにお勧めすることはできません。私はActiveRecordのでこだわっているカップルのRailsのアプリケーションを持っている、と私は常にその欠点と設計上の欠陥をのろいです。あなたはシナトラにしている場合は、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

それはあなたがオームズの一つまたはいくつかのNoSQLアダプタのどちらかを選択することができ、データベースと通信する方法をあなた次第です。利用できる多くのオプションは、そのうちのいくつかは、シナトラのために特別に作られた、あります:

たとえば、シナトラActiveRecordの拡張
があります もともとはブレイクMizerany、シナトラ
の作成者によって作成されました これは、ActiveRecordのヘルパーメソッドとのRakeタスクでシナトラを拡張

別のオプションは、シナトラ続編拡張である。
この小さな拡張は右シナトラにデータベース構成、移行、および続編アダプタを追加します。

またはSO上シナトラ-のRedis、またはシナトラ・モンゴ、と。ちょうどあなたが欲しいものを検索します。

しかし、あなたは同様に自由にデータベースにシナトラレシピrel="nofollow">の 、シナトラで人気のあるデータベースマッパーを使用する方法の例をいくつか記載されています。それは、このための提案練習はDataMapperのを使用していることが挙げられるが、私はシナトラ自体には何もこのことを示唆していないので、これは、単なる好みであることを疑うます。

scroll top