ホーム » ブログ » Sinatra GET/POSTメソッドを一つのアクションで実装する方法

Sinatra GET/POSTメソッドを一つのアクションで実装する方法

Sinatra

SinatraでGET/POSTメソッドを一つのアクションで実装する方法です。

こういうふうに同じ処理をしてるアクションは無駄ですからね。
1
2
3
4
5
6
7
get '/foo' do
  p 'hi'
end

post '/foo' do
  p 'hi'
end

multi_routeという拡張モジュールを使って解決できました。

sinatra-contribをgemでインストールして、
$ sudo gem install sinatra-contrib

1
2
3
4
5
require 'sinatra'
require "sinatra/multi_route"
route :get, :post, '/foo' do
    p 'hi'
end

もしくは、
1
2
3
4
5
6
class MyApp < Sinatra::Base
  register Sinatra::MultiRoute
  route :get, :post, '/foo' do
    p 'hi'
  end
end

です。

(参考) Sinatra::MultiRoute (part of Sinatra::Contrib)
(参考) Sinatra::Contrib


環境
Mac OS X 10.8.3
ruby 2.0.0p0
sinatra 1.4.2
前の記事 «
次の記事 »