I thought request.method is supposed to return a symbol like :get, :put etc. ?
But instead in the controller action, I am getting GET as a String!
Am I doing something wrong?
In routes.rb:
resources :posts
member do
get 'some_action'
end
end
In a view .erb:
<%= link_to "Some Action",some_action_post_path %>
In PostsController:
def some_action
p request.method # => "GET"
p request.method.class.name # => "String"
if request.method == :get
#does not get called
end
end
Ps. I’m using Rails 3.0.3 on Ruby 1.8.7 p330
Works as designed – it is supposed to return a string 🙂
So, use the string. Different topic: you can convert between strings and syms with to_s and to_sym, respectively.