뷰에서 현재 컨트롤러의 이름을 얻을 수 있습니까?
뷰 내에서 현재 컨트롤러가 무엇인지 알아내는 방법이 있습니까?
내가 이것을 알고 싶은 이유의 예 : 여러 컨트롤러가 동일한 레이아웃을 공유하는 경우 레이아웃 ERB 파일에 컨트롤러를 기반으로 현재 페이지의 메뉴 항목을 강조 표시하려는 부분이있을 수 있습니다.
어쩌면 그것은 나쁜 접근법입니다. 그렇다면 더 선호하는 방법은 무엇입니까?
그래도 현재 컨트롤러의 이름을 얻는 방법에 대해 알고 싶습니다.
(분명히 @controller_name = 'users'
각 컨트롤러 에 무언가를 넣을 수는 있지만 Rails가 이미 배후에서 한 일처럼 보입니다. 따라서 내장 방법이 있는지 궁금합니다.)
controller_name
현재보기를 제공하는 데 사용되는 컨트롤러 이름을 보유합니다.
또한 Rails Guides에는 다음과 같이 표시되어 있습니다.
params 해시는 항상 : controller 및 : action 키를 포함하지만 이러한 값에 액세스하려면 controller_name 및 action_name 메소드를 대신 사용해야 합니다.
CSS 클래스가 있다고 가정 해 봅시다. CSS 클래스 active
는 페이지가 현재 열려있는 링크에 삽입해야합니다 (아마 다른 스타일을 지정할 수 있음). 동작 이있는 static_pages
컨트롤러 가있는 경우 about
보기에서 다음과 같이 링크를 강조 표시 할 수 있습니다.
<li>
<a class='button <% if controller.controller_name == "static_pages" && controller.action_name == "about" %>active<%end%>' href="/about">
About Us
</a>
</li>
#to get controller name:
<%= controller.controller_name %>
#=> 'users'
#to get action name, it is the method:
<%= controller.action_name %>
#=> 'show'
#to get id information:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
#=> '23'
# or display nicely
<%= debug Rails.application.routes.recognize_path(request.url) %>
controller_path
현재보기를 제공하는 데 사용되는 컨트롤러의 경로를 보유합니다. (예 :) admin/settings
.
과
controller_name
현재보기를 제공하는 데 사용되는 컨트롤러 이름을 보유합니다. (예 :) settings
.
참고 URL : https://stackoverflow.com/questions/3757491/can-i-get-the-name-of-the-current-controller-in-the-view
'Programing' 카테고리의 다른 글
이메일 주소가 iOS에서 유효한지 확인하십시오 (0) | 2020.05.08 |
---|---|
파일이 있는지 확인한 후 파일을 삭제하는 방법 (0) | 2020.05.08 |
파이썬 패키지를 어떻게 업데이트합니까? (0) | 2020.05.08 |
jQuery로 DIV 배경 이미지 전환 (0) | 2020.05.08 |
Python JSON은 Decimal 객체를 직렬화합니다. (0) | 2020.05.08 |