2013-08-26 3 views
3

나는보기 (또는 템플릿)를 렌더링하는 쉬운 방법을 찾고있었습니다. 나는 렌더링 엔진을 얻는 것과 관련된 컨텍스트를 전달하는 인터넷상의 복잡한 솔루션을 본 적이있다. Context는 ActionController :: Base에서 가져온 원래 뷰 경로로 초기화 된 액션 뷰 인스턴스이며, 마침내 할 수있다. 템플릿 내에서 인스턴스 변수를 사용하지 않거나 도우미 메서드를 사용하지 않는 경우 로컬 변수를 전달하십시오.이 경우에는 모든 것을 수동으로 삽입/포함해야합니다. 그런 다음 상대 변수와 관련된 몇 가지 문제가 있습니다. 레일스 컨텍스트 외부에서 유추되지 않는 부분의 위치 .. 어 .. 거기에 간단한 #render 메서드를 호출 할 수있는 주요 개체가 아닌가요? 당신은 레일 콘솔에서 작업하는 경우, 당신은Rails 3.2/4 : 콘솔에서 템플릿 (부분, 뭐든간에 ...)을 쉽게 렌더링 할 수 있습니까?

+0

왜 콘솔에서이 작업을 수행하려고? 이상한 유스 케이스처럼 보입니다. 당신은 Liquid 같은 것을 사용하는 것이 나을지도 모른다. http://liquidmarkup.org/ – ADAM

+0

나는 당신이 콘솔을 실행할 때 그 모든 복잡한 일을하고 그 루비 파일만을 포함하는 루비 파일을 가질 수 있다고 생각한다. 정확히 당신이 성취하고자하는 것은 무엇입니까? 템플릿을 디버깅하려면 템플릿에 디버거를 넣으십시오. – j03w

+0

재스민 스펙을 직접 작성하여 템플릿을 작성하는 것이 아플 수 있습니다. 나는 또한 내 rspec 또는 오이 스크립트가 내 jasmine specs (너무 많은 종속성)를 렌더링하는 것을 원하지 않는다. 그래서 실제로 jasmine : ci 작업을 시작하기 전에 필요한 partials/templates를 미리 렌더링하고 있습니다. – ChuckE

답변

0

를 호출 할 수 있습니다

> app.get '/' 
> response = app.response 
> body = response.body 
+0

멋진 기능! 그것은 어떤면에서 유용 할 수 있습니다.하지만보기에 사용자가 로그인해야만 볼 수있는 전체 응답 본문을 렌더링해야 할 때마다 몇 가지 문제가 발생합니다. 그러나 이것은 제가 본이 문제에 대한 답에 가장 가깝습니다. 로그인 된 사용자 세션을 어떻게 마스크 할 수 있는지 알고 있습니까? – ChuckE

+0

로그인하는 데 필요한 정보가 없습니다. 몇 가지 방법이 있지만 다른 질문을 올릴 때 가장 도움이 될 수 있습니다. 사용자를 인증하는 방법에 따라 콘솔의 컨트롤러를'skip_before_filter'로 보강 할 수 있고,'app.controller.current_user'를 변경할 수 있으며, 적절한 경로에 게시하여 실제로 로그인 할 수 있습니다. warden/rack 미들웨어, 당신은'app.session' 등을 변경할 수 있습니다. 이것은 당신의 구현에 달려 있습니다. – RubeOnRails

+0

관련 게시물의 혜택을 누릴 수 있습니다. * http://stackoverflow.com/questions/9544338/rails-3-how-can-you-get-access-to-devises-current-user-in-the- irb-console * http://stackoverflow.com/questions/6209663/how-to-skip-a-before-filter-for-devises-sessionscontroller – RubeOnRails