Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何脱机使用已部署的Rails 4应用程序,并在需要时进行同步?_Ruby On Rails_Ruby_Ruby On Rails 4_Webserver - Fatal编程技术网

Ruby on rails 如何脱机使用已部署的Rails 4应用程序,并在需要时进行同步?

Ruby on rails 如何脱机使用已部署的Rails 4应用程序,并在需要时进行同步?,ruby-on-rails,ruby,ruby-on-rails-4,webserver,Ruby On Rails,Ruby,Ruby On Rails 4,Webserver,我正在开发一个Rails应用程序,它可以作为收银机、销售录音机和票据打印机,用于同一特许经营权的许多商店的每次购买 问题是它必须能够离线运行,以防互联网在任何给定的时间、任何商店地点中断,这样客户服务就不会受到影响 有没有办法离线运行Rails应用程序,并在重新建立连接后将其与服务器同步 或者甚至离线操作并在一天结束时同步 它需要一个特定的数据库吗?从技术上讲,没有理由不能这样做。我已经做过了,如果你对应用程序的设计很仔细的话,它实际上运行得很好 除此之外,还应注意以下事项: Javascri

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

问题是它必须能够离线运行,以防互联网在任何给定的时间、任何商店地点中断,这样客户服务就不会受到影响

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

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


它需要一个特定的数据库吗?

从技术上讲,没有理由不能这样做。我已经做过了,如果你对应用程序的设计很仔细的话,它实际上运行得很好

除此之外,还应注意以下事项:

  • Javascript库,比如jQuery,您需要确保从公共目录而不是从CDN加载这些库
  • Rails附带SQLite,非常适合离线(和小规模)功能。如果您愿意,您可以将本地数据库服务器用于Postgres或MySQL(或您可以在本地安装的任何东西)
  • 图像、字体和其他设计资源也应该在本地可用,如果您有想要使用的在线图像或字体资源(例如,谷歌限制脱机使用其字体资源),这可能会很棘手
测试离线行为也很容易。将其放在笔记本电脑上,然后关闭Wifi。你很快就会知道这是否有效

对于脱机应用程序和主服务器之间的文件同步,您可以选择技术和数据格式。您可以实现REST风格的同步API、低技术的FTP推送,甚至rsync。数据格式可以是JSON(当前结构化数据存储的王妃)、成熟的CSV,甚至是(令人不寒而栗的)XML


构建离线应用程序应该不会让人感到意外,您将拥有Rails提供给您的所有工具和资源,但可以从internet任意加载资源。

简短回答:是的。长答案:视情况而定。同步很难。你真的不想走这条路,除非这是绝对不可避免的。@tadman我愿意走这条路,除非有其他选择,但情况需要。据我所知,首先我必须在本地和在线部署应用程序。对于同步(RESTAPI是我的选择),我必须允许本地应用程序连接到在线应用程序API。这会使它们略有不同,还是它们完全是同一个应用程序?这应该不会有问题。这只是设计上的考虑。Rails根本不会阻止您这样做。我已经这样做了,所以如果你有任何问题,请一定要问。好的,如果我误解了,请纠正我:1。-我在本地和在线部署应用程序。2.-通过REST API连接它们。3.-使用本地应用程序,当它可以访问互联网时,它将始终更新在线应用程序。4.-当它离线并重新连接时,它会将所有更改推送到在线应用程序。5.-MySQL(我使用的数据库)将在本地应用程序重新连接到internet时在一天结束时保持更新。这可以是相同的应用程序,也可以是不同的应用程序,具体取决于功能要求。在加盟店系统中,“注册”模式通常只由一类员工使用,其他所有功能由另一类员工使用。您可能会发现构建一个单独的应用程序更容易,或者在登录后简单地将其作为一个基于角色的选项可能更好。非常好,这解决了我的疑问,您提供了非常大的帮助。我会继续的,谢谢你,迈克尔。