我有一個返回JSON的控制器方法。但是有時候這個JSON對象的一部分應該包含一個渲染的序列化的HTML視圖。所以,我的控制器方法有這樣一行:如何在Rails中構建JSON響應時呈現HTML視圖?
html = render_to_string :partial => 'foo/bar'
# ...
render json: {x: 'y', html: html}
但失敗了,因爲Rails的只是尋找JSON的意見!
::的ActionView MissingTemplate(缺少含{局部富/欄:區域設置=> [:EN]:格式=> [:JSON]:處理程序=> [:ERB,:助洗劑,:咖啡, :苗條,:HAML]} [...]
我怎樣才能解決這個
更新:?我已經得到了一個佈局的 「級別」,以render_to_string
爲html使用下面的語法,但當佈局呈現自己的分部時,同樣的錯誤依然存在!
html = render_to_string :partial => "foo/bar.html.haml"
當然,這裏有一個解決方案,對吧?
更新2:render_to_string :action => 'method_in_this_controller'
似乎做的伎倆。
嘗試:'HTML = render_to_string:局部=> '富/酒吧',:格式=> [:HTML]' – Yanhao
感謝您的建議!我可能做錯了,但這似乎並沒有辦法。 –
提出2個請求會好嗎?一個用於html,如果需要的話,之後的json?單一目的總是好的。可能需要多行代碼和額外的ajax調用。但是誰知道。只是我的2cents。 –