了解EmberJS和Rails后端工作流程

Understanding EmberJS and Rails backend workflow

本文关键字:后端 工作流程 Rails EmberJS 了解      更新时间:2023-09-26

我试图理解EmberJS如何与RubyonRails交互的一件事(或者你使用的任何后端可能都适用于这里)。我们正在编写的所有模板基本上都是在手柄中完成的,EmberJS负责根据您所处的路线来渲染它们。问题是,当你浏览URL,并且你使用浏览器的history API时,它仍然会到达Rails的后端,并通过Rails HTTP请求的正常层次结构。这意味着从routes.rb到所有发送回客户端的视图,所有内容都受到了影响。我只是想知道这是否正常?当转换现有的Rails应用程序以使用Ember时,我仍然会呈现大量的Rails视图,这些视图由于这种行为而不再适用。我猜它们应该从服务器上删除,以免浪费处理时间?当使用带有EmberJS或其他相关客户端框架的历史API时,这种行为是典型的吗?

如果您使用历史API,这是典型的。不过,这也是我建议关闭此功能的原因。ember通常与rails集成的方式是,你只有一个控制器操作,比如home#索引,它将通过导航到浏览器中的url直接命中。每隔一个rails操作都将通过ajax从ember中的一个路由(最好)调用。

如果必须保留标准url,则必须为ember路由器中定义的每个url定义rails控制器方法。当然,您可以将所有url指向一个"home#index"操作,该操作以一个空的html页面作为响应。