2011-03-02 4 views
7

request.method:get, :put 등과 같은 기호를 반환한다고 생각하십니까? 대신 컨트롤러 동작에서 GET을 문자열로 가져옵니다!`request.method`가 (기호 대신) 문자열을 반환하는 이유는 무엇입니까?

내가 잘못 했나요? routes.rb에서

:

resources :posts 
    member do 
    get 'some_action' 
    end 
end 

뷰 .erb 물 :

<%= link_to "Some Action",some_action_post_path %> 

PostsController 물 :

def some_action 
    p request.method    # => "GET" 
    p request.method.class.name # => "String" 
    if request.method == :get 
    #does not get called 
    end 
end 

시. Ruby 1.8.3 p330에서 레일즈 3.0.3을 사용하고 있습니다.

답변

10

설계된대로 작동합니다. - 문자열을 반환해야합니다 :) 그래서 문자열을 사용하십시오. 다른 주제 : to_s와 to_sym으로 각각 문자열과 sym을 변환 할 수 있습니다.

+0

내가 잘못된 문서를 찾고 있었어요 :) – Zabba

9

Rails 2.x에서 변환하는 동안이 질문을받는 사람은 request.method 호출이 기호를 반환하는 데 사용된다는 점에 유의해야합니다.

관련 문제