我们在API模式下使用Ruby on Rails 5.0.0.1。我需要添加哪些中间件和配置,以便能够在控制器中呈现html而不是json。
编辑:
谢谢大家的答案。
我想要的是渲染正常的erb/haml
视图。不是json中的html像'kartik upadhyay'提到的那样。由于Application是主要的JSON API,我们不想要完整的默认Rails安装,这意味着我们的应用程序控制器从ActionController::API
扩展。
我的计划是制作一个PdfRendering控制器,其中包含ActionView所需的所有模块。我宁愿做的是阅读资产管道(因为我们想使用sass)并从ActionController::Base
继承应用程序控制器。和其他rails应用程序一样。
这不是最好的解决方案,因为你包含了整个ActionController :: Base以及你可能没有使用的所有功能。但是完整的Blown Rails安装(特别是中间件又称会话等)仍然更加苗条。
您可以使用render to string方法将rails渲染为json中的字符串,将其放入控制器中:
render json: { data: render_to_string('html_file_name') }
这会将html呈现为响应,如:
{"data": "<html>\n<h3>hello</h3>\n</html>"}
你可以渲染erb / haml / slim等文件,如下所示:
format.html { render :file_name }
你可以简单地使用这个宝石RABL。