2012-04-03 16 views
5

rails 3.2 rakeタスクの文字列にrablビューをレンダリングしようとしています。私はバックグラウンドタスクからプッシャーを介してJSONを送信するために文字列にレンダリングしています。レーキタスクの回答からさまざまなrender_to_stringを見てきましたが、どれもうまくいかないようです。ここで私はこれまで持っているものです。rakeタスクで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')) 

この試み私はActionView ::テンプレート:: Error例外やエラー「nilのための未定義のメソッド `パラメータ:NilClass」を取得して。

答えて

6

Rabl::Renderer methodsを呼び出すことで簡単に行うことができます。ただし、何かをレンダリングしようとすると、コンテキストが重要になります。したがって、外部に呼び出すときには使用できないため、rablファイル内にコントローラ/ヘルパーメソッドがある場合は注意してください。ここでは、Rabl 0.6.13でテストした、使用できるサンプルコードを示します。

Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views') 
関連する問題