如何使用Ruby on Rails 5 API应用程序呈现HTML

问题描述 投票:4回答:3

我们在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安装(特别是中间件又称会话等)仍然更加苗条。

html ruby-on-rails ruby api ruby-on-rails-5
3个回答
0
投票

您可以使用render to string方法将rails渲染为json中的字符串,将其放入控制器中:

render json: { data: render_to_string('html_file_name') }

这会将html呈现为响应,如:

{"data": "<html>\n<h3>hello</h3>\n</html>"}

0
投票

你可以渲染erb / haml / slim等文件,如下所示:

format.html { render :file_name }

-2
投票

你可以简单地使用这个宝石RABL。

https://github.com/nesquena/rabl

© www.soinside.com 2019 - 2024. All rights reserved.