我的组织正在考虑将现有的Rails monolith重新实现为Rails服务的集合。对于内容层,我们的想法是我们的API网关将包含整个应用程序的布局信息,并将通过HTTP请求单个视图。然后,各个服务将呈现其模板,并通过HTTP将其作为呈现的HTML发回。
我的问题是:Rails中是否有一种机制可以通过HTTP请求远程内容,将收到的HTML呈现为ERB / HAML布局模板,然后提供完全呈现的HTML?
答案 0 :(得分:0)
在Rails中渲染模板时,没有任何内容限制标记的来源。通常它会来自本地找到的*.html.erb
模板。
当预渲染的html片段来自外部源时,您可以这样做:
render html: my_html_string.html_safe
如果你想要一个布局,那么:
render html: my_html_string.html_safe, layout: 'my_layout'
外部源可以使用html格式渲染器或作为字符串为my_html_string
提供服务,以便稍后序列化为例如json。
@my_html_string = render_to_string(
template: 'templates/my_template.html.erb',
layout: false
)
答案 1 :(得分:0)
就像在控制器中请求该信息然后在ERB模板中将其作为字符串输出一样?
还有其他要求我不在吗?
<强>控制器强>
def index
@content = body_of_request_to_service
end
查看强>
...
<%= @content %>
...
但是,我不建议使用Ruby 来推荐这种微服务(除非你有一个了解如何处理异步Ruby IO的开发团队)。一个好的经验法则是每个客户端请求只有一个阻止服务请求。