最近、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 件のコメント:
コメントを投稿