[Ruby] Sinatraでpostとget両方を処理を一括で書く
Sinatraでサイトを作る際に、postとgetそれぞれの処理を書くのが面倒だったので、両方を処理する方法を調べてみました。
公開日: 2019.2.5
両方を許容する関数を追加する
下記のサイトのやり方まんまです。
Accepting Both Get And Post Method in Sinatra
まずは、getとpost、どちらがきても変数を渡せるような関数を書きます。
def get_or_post(path, opts={}, &block)
get(path, opts, &block)
post(path, opts, &block)
end
route処理で「get_or_post」関数を使う
続いて、route処理をする際に、この「get_or_post」関数で呼び出します。
get_or_post '/' do
'hello sinatra'
end
これで、get、post両方で受付ができます。
本来なら、getとpost両方を許容するのって微妙なのかもしれませんが、知っておくと便利かなと思うので、備忘録までに。