2012-04-03 4 views
5

레일 3.2 레이크 작업에서 rabl보기를 문자열로 렌더링하려고합니다. 백그라운드 작업에서 Pusher를 통해 JSON을 보내려면 문자열로 렌더링합니다. 레이크 작업 응답에서 다양한 render_to_string을 살펴 보았지만 그 중 아무 것도 작동하지 않는 것 같습니다. "NilClass 전무에 대한 정의되지 않은 메서드 '매개 변수'"이 나는 ActionView을 얻을 시도 :: 템플릿 : 오류 예외 오류로레이크 작업에서 rabl보기를 렌더링하는 방법은 무엇입니까?

controller = PostsController.new 
av = ActionView::Base.new(MyApp::Application.config.paths['app/views'].first,{},controller) 
@post = post 
Pusher["some channel"].trigger('new_post', av.render(:template => 'posts/show.json.rabl')) 

: 여기에 내가 지금까지 가지고있는 것입니다.

답변

6

Rabl::Renderer methods을 호출하는 더 쉬운 방법이 있습니다. 그러나 무언가를 렌더링하려고 할 때 컨텍스트가 중요합니다. 그러므로 외부에서 호출 할 때 사용할 수 없으므로 rabl 파일 안에 컨트롤러/도우미 메서드가 있으면주의해야합니다. 다음은 Rabl 0.6.13을 사용하여 테스트 할 수있는 샘플 코드입니다.

Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views') 
관련 문제