Merbの開発がなかなか進展しないのでSinatraをちょっと触ってみたところ、
DataMapper、Herokuとの組み合わせが非常に簡単でいい感じでした。

blog.rb
ruby>>
require "rubygems"
require "sinatra"
require "dm-core"
require "haml"

DataMapper::setup(:default, ENV['DATABASE_URL'] || 'sqlite3:db.sqlite3')

class Post
include DataMapper::Resource
property :id, Serial
property :content, Text
auto_upgrade!
end

get "/" do
@posts = Post.all(:order => [:id.desc])
haml :index
end

post "/" do
Post.create(params)
redirect "/"
end

END
@@ index
%h1 Hello, Sinatra!
%ul

  • @posts.each do |post|
    %li= post.content
    %form{:method => :post}
    %textarea{:name => :content}
    %input{:type => :submit, :value => "Post"}
    <<--

config.ru
ruby>>
require "blog.rb"
run Sinatra::Application
<<--

ローカルで起動するには

pre>>
% ruby blog.rb
<<--

もしくは

pre>>
% rack
<<--

でok. rubyの場合はhttp://localhost:4567、Rackの場合は http://localhost:9292 にアクセス。

これをHerokuにデプロイすると、
http://sinatora-blog.heroku.com/
こんな感じで動きます。

posted by genki genki on Tue 14 Jul 2009 at 14:56 with 2 comments
takuma104 takuma104 07/31 18:30
おー、Sinatra+DataMapperいいかんじですねえ。まださわり始めなのですが、DataMapperのシンプルかつ強力さはいろいろ読んでてぐっときてます。

ちなみに、こまかいのですが、このまま $ ruby blog.rb した時、sqlite3ファイルが保存されない(というか生成されない)現象が手元で出ました。(dm-core-0.9.11あたり) DataMapperのログにも何も出ないので、DataMapperのコード追ってみたところ、

DataObjects::URI.parse("sqlite3://db.sqlite3").path # => ""

というのが原因のようです。(この path の値で sqlite3_open しているので、この場合、空文字列のファイル名でファイル生成とかになってるのかな。。)

ので、この場合スキーマの定義は

"sqlite3://#{Dir.pwd}/db.sqlite3"

とかしたほうがよさげです。
瀧内元気 瀧内元気 07/31 18:44
> スキーマの定義

おお、どうもです!

修正しておきました。
Contents rssrss
光ファイバーを二次元振動させて走査するAR用ディスプレイ
因果の取り違え
Swift2's defer for CoffeeScript
mongodb-3.0からcreateIndexのdropDupsが無くなったらしい
mongodb-3.0以降のWiredTigerの設定を動的に変更する方法
一般楕円の高速生成アルゴリズムへの道標
farro mantecatoのレシピ
Droonga関連の記事のまとめ
RuntimeErrorの特定のメッセージに限定してrescueする方法
jQueryでscriptタグを実行せずにappendする
Tags
coffeescriptdefergroongajsmemonodenodejs
Comments rssrss
https://wildwomanunderwear.com/ https://wildwomanunderwear.com/: Do you have a spam problem on this website; I also... 05/25 17:25
https://setonlibrary.org https://setonlibrary.org: Ahaa, its nice dialogue about this paragraph here ... 05/25 17:21
https://mexicanpharmrx.com/ https://mexicanpharmrx.com/: Hi! Do you know if they make any plugins to assist... 05/25 16:47
http://Tinylink.in/sec1algebraquestions4773 http://Tinylink.in/sec1algebraquestions4773: Ԍiven tһe pressure оf PSLE, initiating math tuitio... 05/25 16:14
https://onemall.vn/proxy.php?link=http://Mdias-Sa.Com.br/doku.php?id=fabriquer_un_nichoir_a_chauves-souris:plan_et_instructions_par_le https://onemall.vn/proxy.php?link=http://Mdias-Sa.Com.br/doku.php?id=fabriquer_un_nichoir_a_chauves-souris:plan_et_instructions_par_le: hello!,I really like your writing so a lot! share ... 05/25 13:30
http://test54.utohouse.co.kr/bbs/board.php?bo_table=free&wr_id=705514 http://test54.utohouse.co.kr/bbs/board.php?bo_table=free&wr_id=705514: Mattress Singappore Buying Guide 2026: Нow tօ Choo... 05/25 11:23
http://CMH.Or.kr/bbs/board.php?bo_table=free&wr_id=113383 http://CMH.Or.kr/bbs/board.php?bo_table=free&wr_id=113383: Kaizenaire.com іs Singapore's top location for fre... 05/25 10:23
https://haesunplus.com https://haesunplus.com: I was pretty pleased to find this website. I wante... 05/25 10:13
Services from s21g
YOMU Web小説リーダー
小説投稿サイトの公式ページを開き、WebView表示と読み上げ向け表示を切り替えて、移動中や作業中にもWeb小説の続きを聴きやすくするiPhoneアプリです。
補助探
公開されている補助金・助成金情報を集約し、条件に合う制度を探しやすくするサービスです。
jotter.me
個人開発者のためのホスティング一体型ノートサービス
ハンドミラー
iPhone向けの手鏡アプリ
ツイプロ(twpro)
Twitterプロフィールの高速検索エンジン