今回のお悩み
同じURLでGETで呼ばれた時とPOSTで呼ばれた時で、同一アクション内で処理を分岐したい...
検証環境
- Rails 4.2.9 (Rails5でも動くと思う)
答え
requestオブジェクトのHTTP判定メソッドで分岐出来る!
実装例
routes.rb
get '/register' => 'users#register' post '/register' => 'users#register'
users_controller.rb
def register if request.get? # GETでやりたいこと elsif request.post? # POSTでやりたいこと end # 任意の処理 end
requestオブジェクトのHTTP判定メソッドまとめ
メソッド名 | 内容 |
---|---|
get? | GETかどうか |
put? | PUTかどうか |
patch? | PATCHかどうか |
post? | POSTかどうか |
head? | HEADかどうか |