답변:
레일스 2.X :@controller.action_name
레일스 3.1.X : controller.action_name
,action_name
레일스 4.X :action_name
before_filter
블록과 함께 사용하려면을 수행하십시오 before_filter { |controller| ... }
. stackoverflow.com/questions/2669663/…
action_name
로 Rails 3.2.13에서 작동 controller.action_name
하지만 그렇지 않습니다.
Rails 액션의 특정 경우 (현재 메소드 이름을 얻는 일반적인 경우와 달리) params[:action]
또는 작업 / 방법 이름이 로그 메시지가 아닌 형식으로 포함되도록 Rails 로그 형식을 사용자 정의 할 수 있습니다.
action_name == 'new'
(접두사 없음) 여전히 Rails 3.2에서 작동합니다.
mikej의 대답은 매우 정확하고 도움이되었지만 내가 알고 싶었던 것은 현재 메소드 이름을 레일로 얻는 방법이었습니다.
self.current_method로 가능하다는 것을 알았습니다.
http://www.ruby-forum.com/topic/75258 에서 쉽게 찾을 수 있습니다 .
나는 방금 똑같이했다. 도우미 컨트롤러에서 수행했습니다. 내 코드는 다음과 같습니다.
def get_controller_name
controller_name
end
def get_action_name
action_name
end
이 메소드는 현재 제어 자와 조치 이름을 리턴합니다. 그것이 도움이되기를 바랍니다.
controller_name
은 왜 호출 하는 다른 메소드에서 현재 컨트롤러의 이름을 리턴하는 메소드 controller_name
입니까? 왜 전화 controller_name
해서 끝내지 않겠습니까?