2013-05-30 3 views
1

많은 다른 장소에 많은 컨트롤러가있는 클라이언트를 위해 기존 Refinery CMS 앱을 사용하고 있습니다. Refinery CMS에 n00b라면 벤더 폴더 안에 전체 레일 애플 리케이션을 중첩 할 수 있으며 플러그인처럼 작동합니다. 그것의 복잡한 작동 방식과 훨씬 더 많은 모델/컨트롤러가 정련소 보석에 내장되어있어 컨트롤러가 존재할 수 있지만이를 위해 파일을 작성하지는 않습니다. 내가 한Rails & Refinery CMS :보기에서 컨트롤러 클래스 이름을 결정 하시겠습니까?

http://refinerycms.com/edge-guides/extending-controllers-and-models-with-decorators

을하지만 내 코드는 발사되지 않은 :

나는이 예에 따라 컨트롤러를 확장하고 싶었다. 실제로이 문제를 해결하여 문제가 해결되었지만 미래에 어떤 컨트롤러가이 뷰를 호출했는지 아는 것이 유용 할 것입니다. 뷰는 그것을 참조 이미 내가 좋아하는 뭔가를 던질 수 있도록 무시되었다 그러나 일부 보석에 자리 잡고있다 :

<%= raise self.class.to_yaml %> 

나는 다음과 같은 오류 받기의 문제 :

can't dump anonymous class: #<Class:0x000000061f5850> 

외설 매우 도움이되지 않습니다.

내 질문은 : 어떤 주어진보기/부분을 호출하는 컨트롤러의 클래스 이름을 어떻게 출력 할 수 있습니까?

감사합니다.

답변

3

당신은 현재의 행동을

+0

감사 params[:controller] 그리고 params[:action]을 사용할 수 있습니다! 또한, 더 나은 대답'params [: controller] .camelize'라고 생각합니다. 중간에':: Admin'을 추가해야한다는 사실을 놓쳤다는 것이었기 때문입니다. – DJTripleThreat

+0

컨트롤러를 .../admin/users_controller.rb에 두었고 "... :: Admin :: Users?"와 같은 rezult를 ​​얻고 싶습니까? – Parandroid

+0

예. 컨트롤러를 변경하는 대신 컨트롤러를 재정의해야 할 필요가있었습니다. 적절한 방법 중 하나를 맞춤 설정할 필요가 있습니다. 어떤 파일을 덮어 쓸지 알아낼 수있는이 페이지를 발견했습니다 (이 페이지에서이 작업을 수행하는 방법은 rails 명령 참조). https://gist.github.com/ryandeussing/2502881 – DJTripleThreat

관련 문제