1

我有一个相当简单的 Rails 3.2 应用程序部署到 Heroku,我想将它移植到 Ember 以减少开销并简化应用程序,然后再继续进一步构建它。谁能提供有关如何最好地解决此问题以保持我现有的 Postgres 用户数据完整的一般指导?

我对 Ember 很陌生,刚刚开始,但我想在我走得太远之前开始专门考虑解决这个问题。

FWIW,我隐约知道 ember-rails ( https://github.com/emberjs/ember-rails ),但我目前的直觉是我想完全脱离 Rails 以保持应用程序精简。随意评论为什么我错了。:)

4

1 回答 1

1

我们有一个带有 jQ​​uery 前端的 Rails 4 应用程序,我们正在慢慢采用 Ember。这可能是一个没有一个正确答案的开放式问题,所以我将提供一些指导。

首先,我将首先说 Ember 和 Rails 解决不同的问题。Ember 不是 Rails 的替代品,而是更大系统的一部分,Rails 是一个组件,Ember 是另一个组件,就像您的数据库是另一部分一样。也就是说,使用 Ember 简化并且可能消除了在 Rails 中执行某些部分的需要,因此存在一些重叠。如果您要删除 Rails,您可能必须用等效的东西替换它。

现在有一些想法或方法:

  • 侧应用程序/页面。找到一个可以与您的主应用程序分开的新的小型功能区域,可以使用 Ember 端到端完成。例如在电子商务网站上,查看您的订单历史记录。做一些单独的事情,您可以开始获得一些好处,而无需重新编写所有现有功能或冒险破坏某些东西。您也可以从头开始,而不必担心遗留代码。
  • 全部重写。显然缺点是时间在这里。您可以从复制生成的 HTML 开始,将其移动到 Handlebars 并将其动态部分更改为绑定 ( {{name}})。计划您的模型并使用固定装置使其全部正常工作。创建一些控制器来添加流程,最后用对新 Rails API 的调用替换固定装置。
  • 页面的一部分。这个有点棘手,因为 Ember 有点喜欢拥有整个页面,但这可能是最好的方式,因为重写需要很长时间,并且可能没有足够价值的 Side App 来处理。如果这样做,您将不得不禁用 Ember 中的历史记录,将 rootElement 设置为您正在刷新的页面部分。如果此部分与应用程序的其他部分之间存在交互,您可能需要使 Ember 生成的标记与页面中的遗留 javascript 代码兼容(例如,维护用于行为的数据属性)。

此外,如果您正在使用 TurboLinks 并且在使用 Ember 之前无法禁用它,则必须确保 ember 在 turbolink 的页面生命周期中正确加载。请参阅TurboLinksHackForEmber

于 2013-11-04T21:46:52.127 回答