JSON で長いメッセージを返したいシナリオがあります。文字列連結で書き出す代わりに、JSON にレンダリングできる erb テンプレートをまとめたいと思います。以下は私が現在試しているコードです:
object @invitation
node(:phone_message) do |invitation|
begin
old_formats = formats
self.formats = [:text] # hack so partials resolve with html not json format
view_renderer.render( self, {:template => "invitation_mailer/rsvp_sms", :object => @invitation})
ensure
self.formats = old_formats
end
end
このコードを最初に実行したときはすべてが期待どおりに機能しますが、2 回目に実行すると問題が発生します。これは、インスタンス変数が欠落していると表示されるためです (最初の実行時に生成され、キャッシュされたと想定します)。
未定義のメソッド _app_views_invitation_mailer_rsvp_sms_text_erb___2510743827238765954_2192068340 # (ActionView::Template::Error)
erb テンプレートを rabl にレンダリングするより良い方法はありますか?