Sinatra3日間クッキング・その3
SInatraでなんか作ってみようその3。 shotgunの使い方とpagenationのやり方。
ここまでできたら、ruby server.rbとかやるだけでhttp://localhost:4567/で動作してしまうが、最初に書いた通り開発中はshotgunを使わないと、スクリプトを書き換える度にCTRL+Cで止めて立ち上げ直すことになってめんどくさい。余談だけど、sinatraを止めると「sinatraはセッションを終える(観衆は拍手した)」とか出てきてかっこいい。 閑話休題、shotgunで立ち上げるには、
shotgun server.rb -p 4567 -s mongrel
と、ポートとサーバを指定してやる必要があった。もちろんwebrickでもthinでも何でもいい、はず。 これでブラウザでアクセスする度にスクリプトが再読み込みされる。後は適当に書いていくだけ。 なお、本番環境では上記のshotgunをrubyに変えるだけでOK。
もう一つ引っかかったのはpagenation。情報が少ないんだよね。
Sequel.extension :pagination
を宣言しておいて、コントローラで
get '/all/:page' do
@page = params[:page].to_i
@items = Items.order_by(:id.desc).paginate(@page, 20)
erb :index
end
としておけば、ビューで@items.current_pageなどのメソッドが使えるようになる。 その他利用可能なメソッド一覧。
以上、初めてなので3日くらいかかってしまったが(うち1日はhamlの記法に悩み、1日はpaginationで悩んでいた)、次回からはほんとに数時間で書けてしまうと思う。 まぁ、今回はイントラでしか使わないのでここで終了だけど、ちゃんと動かそうと思うとリバースプロキシとかやらないといけないんで、そのへんの手間はRailsアプリをデプロイする時とあまり変わらないかも知れない。 ともあれ、短時間で何かでっち上げたい時には便利なんじゃないでしょうか。あと簡潔に書けるので教育に良いかも。