[Sinatra] Sinatraでnamespaceルート(嘘)

Sinatra 楽しい!

今のところあまり大きなものを作る予定がないんだけど、ひとつのファイルにたくさんのルートを書いているとごちゃごちゃしてちょっと嫌だ。

かといってコントローラーを複数に別けるのもSinatraスタイルに反しているような気がする。そこでルートの階層をわかりやすくするTIPS。

def namespace routename, &block
  yield
end

namespaceというメソッドをトップレベルに定義しておく。このメソッドはブロックの内容を実行するだけ。

get '/users' do
  'Users Index'
end
get '/users/new' do
  'New User'
end
get '/todos' do
  'Todos Index'
end
get '/todos/:id' do
  "Show Todo #{params[:id]}"
end

これが

namespace '/users' do
  get '/users' do
    'Users Index'
  end
  get '/users/new' do
    'New User'
  end
end
namespace '/todos' do
  get '/todos' do
    'Todos Index'
  end
  get '/todos/:id' do
    "Show Todo #{params[:id]}"
  end
end

こう書けるようになる。

少し見やすい

関連記事

  1. [rails] map.resourcesでいらないアクションを外す
  2. Ruby on Rails2.3RC1のNested Object Forms を試してみた
  3. Rails 2.3のApplication Templateで煩わしい初期設定とはおさらばする!
  4. FLASHer のためのSinatra入門 [導入編]
  5. [Rails] PaperClipを使って本番の時だけAmazon S3を使う
Posted in ruby, sinatra at 2月 16th, 2010. Trackback URI: trackback
Tags: ,

No Responses to “[Sinatra] Sinatraでnamespaceルート(嘘)”

Leave a Reply