JSONを返すコントローラーメソッドがあります。ただし、そのJSONオブジェクトの一部に、レンダリングされたシリアル化されたHTMLビューが含まれている場合があります。したがって、私のコントローラーメソッドには次のような行があります。
html = render_to_string :partial => 'foo/bar'
# ...
render json: {x: 'y', html: html}
しかし、RailsはJSONビューのみを探しているため、これは失敗します。
ActionView :: MissingTemplate({:locale => [:en]、:formats => [:json]、:handlers => [:erb、:builder、:coffee、:slim、:haml]を含む部分的なfoo/barがありません}。[…]
どうすればこれを解決できますか?
更新:以下の構文を使用して、レイアウトの1つの「レベル」をrender_to_string
htmlとして取得しましたが、そのレイアウトが独自のパーシャルをレンダリングするときに同じエラーが発生します。
html = render_to_string :partial => "foo/bar.html.haml"
確かにここに解決策がありますよね?
アップデート2:render_to_string :action => 'method_in_this_controller'
トリックをしているようです。