2011-11-14

Sinatra + SQLite3 + Hamlで画像アップロードしてみた。



最近、Sinatraを使いたい衝動に駆られたので色々とSinatraで遊んでます。とりあえず画像をいじりたい+データベースを使いたい、ってことで Sinatraでファイルをアップロードさせる方法 と SinatraからDataMapperを使う を参考にしながら、Sinatra DB Demo with Images を作ってみました。動作イメージが分かりやすいようにモデルはtwitter-likeにしてます。で、DBの中身が分かりやすいようにtableでサクッと区切って表示したりなどやってます。こんな感じです。jQueryとかCSSとかは使ってないので、見栄えはあまり良くないです。


なんとなく、フォームを使ったPOSTメソッド以外にも、GETメソッドを使ったPostも出来るようにしてみました。何故実装したかは不明。悪い実装例(?)。使い方は、'/create'にアクセスするだけですが、RESTful的にはこういう風なGETの使い方はやっちゃいけないかと思います。

'/create' にアクセスして、


その後、ルートディレクトリに戻ると、こんな感じでちゃんとDBにデータが入っていることが確認出来ます。


ちなみに、データベースの中身をいじってデバッグしたいときなんかは、 Lita というデスクトップアプリケーションが便利でした。こんな感じで編集出来ます。


おまけ程度の情報ですが、EmacsでHamlを使いたいときはHaml-modeが便利かもです。設定はこんな感じで。indent-tabs-mode nilを入れないと、Hamlがカオスな反応をするので注意。

(add-hook 'haml-mode-hook
  '(lambda ()
     (setq indent-tabs-mode nil)
       (define-key haml-mode-map "\C-m" 'newline-and-indent)))

以上、Sinatra DB Demo w/ Imagesの概説でした。参考になれば幸い。
とりあえず今後は、DELETEとPOSTメソッドを実装して、なんちゃってRESTfulを作ってみたいかも。

yasulab/simple-db-demo-with-img - GitHub
https://github.com/yasulab/sinatra-db-demo-with-img


0 件のコメント: