The statements you are making are not the same
if request.post?
is either true or false
case request when post
is akin to saying: if request == post
If you want to use a case statement, then try something like: case request.post? when true # do something when false ....etc.
There's not much need for a case statement when evaluating true or false, though.