request.post? returns false on POST request

def test
  if request.post?
    render :text => "post"
  else
    render :text => "other"
  end
end

when i post with a form to this page - goes into else branch, when
trying to output request.post? - it's false

Are you sure you're not actually doing a PUT via hidden form fields?

It works fine for me. Here is my code:

<form method="post" action="/pages/test">
  <div><input type="text" name="email" value="enter email"/></div>
  <div><button type="submit" name="submit">Submit</button></div>
</form>

Hassan Schroeder wrote in post #1017170:

render :text => request.method # --> 'POST'

and yet
render :text => request.post? # --> false

rails 3.0.9

Yes, it is a put via hidden field,

but how did a hidden field got there in a first place??

art wrote in post #1017184:

Yes, it is a put via hidden field,

but how did a hidden field got there in a first place??

Post the code that creates your form.

art wrote in post #1017180:

render :text => request.method # --> 'POST'

and yet
render :text => request.post? # --> false

rails 3.0.9

Okay. Web browser can't really send PUT or DELETE requests. So rails
fakes it by putting a hidden form field on the page with a value of
'put' or 'delete'. Then rails checks for that form field. I guess
request.method returns the actual type of the request that the browser
sent--not the type that rails fakes.