레일-컨트롤러 조치 이름을 문자열로
Rails 질문이 있습니다.
컨트롤러 작업 내에서 컨트롤러 작업의 이름을 얻으려면 어떻게합니까?
예를 들어
def create
logger.info("create")
end
나는 같은 것을 쓰고 싶다
def create
logger.info(this_def_name)
end
얻는 방법은 무엇입니까 this_def_name
?
레일스 2.X :@controller.action_name
레일스 3.1.X : controller.action_name
,action_name
레일스 4.X :action_name
Rails 액션의 특정 경우 (현재 메소드 이름을 얻는 일반적인 경우와 달리) params[:action]
또는 작업 / 방법 이름이 로그 메시지가 아닌 형식으로 포함되도록 Rails 로그 형식을 사용자 정의 할 수 있습니다.
컨트롤러 이름 :
<%= controller.controller_name %>
return => '사용자'
액션 이름 :
<%= controller.action_name %>
return => '쇼'
신분증:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
return => '23'
이 스 니펫은 Rails 3에서 작동합니다
class ReportsController < ApplicationController
def summary
logger.debug self.class.to_s + "." + self.action_name
end
end
인쇄합니다
. . .
ReportsController.summary
. . .
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
이 메소드는 현재 제어 자와 조치 이름을 리턴합니다. 그것이 도움이되기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/1244921/rails-controller-action-name-to-string
'development' 카테고리의 다른 글
콘솔에 vbscript 출력 (0) | 2020.06.09 |
---|---|
jQuery와 AJAX 응답 헤더 (0) | 2020.06.09 |
JavaScript를 사용하여 div의 내용을 지우려면 어떻게해야합니까? (0) | 2020.06.09 |
문자열의 모든 문자를 반복하는 가장 빠른 방법 (0) | 2020.06.09 |
Xcode 4.3에서 "응용 프로그램에 유효한 'aps-environment'인 타이틀먼트 문자열이 없습니다"를 수정하는 방법은 무엇입니까? (0) | 2020.06.09 |