2016-07-25 39 views
0

我的组织正在考虑将现有Rails monolith重新实现为Rails服务的集合。对于内容层,我们认为我们的API网关将包含整个应用程序的布局信息,并且会通过HTTP请求各个视图。然后,单个服务将呈现其模板并通过HTTP将其作为呈现的HTML发回。以本地布局渲染远程视图

我的问题是:Rails中是否有一种机制通过HTTP请求远程内容,将接收到的HTML渲染为ERB/HAML布局模板,然后提供完全呈现的HTML?

回答

0

就像在控制器中请求该信息然后在ERB模板中将其输出为字符串一样?

是否还有其他一些要求,我错过了?

控制器

def index 
    @content = body_of_request_to_service 
end 

查看

... 
<%= @content %> 
... 

但是,除非你有一个开发团队,理解如何我不建议使用Ruby (微服务的这种风格处理异步Ruby IO)。一个好的经验法则是每个客户端请求只有一个阻塞服务请求。

0

当你在Rails中渲染一个模板时,没有什么限制你的标记来自哪里。定期来自当地的*.html.erb模板。

当预渲染HTML件来自外部源,你可以这样做:

render html: my_html_string.html_safe 

如果你想有一个布局,则:

render html: my_html_string.html_safe, layout: 'my_layout' 

my_html_string可以由送达外部来源,可以使用html格式的渲染器,也可以作为一个字符串,稍后序列化为例如json。

@my_html_string = render_to_string(
    template: 'templates/my_template.html.erb', 
    layout: false 
)