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

时间:2016-05-19 03:36:25

标签: ruby-on-rails ruby ruby-on-rails-4 webserver

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

问题在于,如果互联网在任何特定时间在任何商店位置出现故障,它必须能够脱机运行,以便客户服务不会受到影响。

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

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

是否需要特定的数据库?

1 个答案:

答案 0 :(得分:2)

从技术上讲,你没有理由不这样做。我已经做到了,如果您对设计应用程序的方式非常谨慎,它实际上效果很好。

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

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

测试离线行为也非常简单。把它放在笔记本电脑上,然后关掉Wifi。如果可行,你会很快知道。

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

构建离线应用程序应该没什么意外,除了能够从互联网上任意加载资源外,你还拥有Rails提供给你的所有工具和资源。