我如何离线使用已部署的 Rails 4 应用程序并在需要时同步它?

How Could I Use a Deployed Rails 4 App Offline and Sync it When I Want?

我正在开发一个 Rails 应用程序,作为收银机、销售记录器和票据打印机,用于同一特许经营的许多商店的每次购买。

问题是它必须能够 运行 离线,以防互联网在任何给定时间、任何商店位置出现故障,这样客户服务就不会受到影响。

有没有办法运行 Rails 应用离线并在重新建立连接后与服务器同步?

甚至离线操作并在一天结束时同步?

是否需要特定的数据库?

从技术上讲,您没有理由不能这样做。我已经做到了,如果您仔细设计应用程序,它实际上工作得很好。

除此之外,需要注意的是:

  • Javascript 库,例如 jQuery,您需要确保从 public 目录加载,而不是从 CDN
  • Rails 附带 SQLite,非常适合离线(和小规模)功能。如果愿意,您可以将本地数据库服务器用于 Postgres 或 MySQL(或您可以在本地安装的任何东西)。
  • 图像、字体和其他设计资产也应在本地可用,如果您有要使用的在线图像或字体资源,这可能会很棘手(例如 Google 限制离线使用它们字体资源)

测试离线行为也很容易。将其放在笔记本电脑上并关闭 Wifi。如果可行,您很快就会知道。

对于离线应用程序和主服务器之间的文件同步,您可以选择技术和数据格式。您可以实现 REST 风格的同步 API、低技术 FTP 推送,甚至 rsync。数据格式很容易是 JSON(当前结构化数据存储的公主)、完善的 CSV,甚至(不寒而栗)XML。

构建离线应用程序应该没有什么意外,您将拥有 Rails 提供给您的所有工具和资源,除了从 Internet 任意加载资源的能力。