我有一个场景,我想用我的 JSON 传回一条长消息。与其用字符串连接写出来,我宁愿把一个 erb 模板放在一起,我可以将它渲染到我的 JSON 中。以下是我目前正在尝试的代码:
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
第一次运行此代码时,一切都按预期工作,但是,我第二次运行它时遇到问题,因为它说缺少实例变量(我假设它是在第一次运行期间生成并缓存的)。
未定义的方法 _app_views_invitation_mailer_rsvp_sms_text_erb___2510743827238765954_2192068340 for # (ActionView::Template::Error)
有没有更好的方法将 erb 模板渲染成 rabl?