我已经构建了一个Rails应用程序,该应用程序将在一个仅限于没有互联网的位置使用。我试图尽可能快地决定将我的工作转化为功能的最佳途径 - 无论是通过桌面应用程序还是我所拥有的某些离线版本。
该应用程序的用途如下: - 从一对一的个人调查中记录传记数据 - 导出本地输入的人口统计数据集,并导入和处理其他类似数据集 ----不需要支持任何过于复杂(图形或其他方面)的东西,只需使用Backbone.js的基本Rails进行交互式调查视图
我只是想知道在我拥有的Rails应用程序(以及我的Rails背景)下获得可以脱机工作的最快方法。我想要像Titanium这样的东西吗?谷歌Gears?像Prism或Fluid这样的东西?我主要担心的是快速完成工作。
答案 0 :(得分:3)
如果您有一个离线应用,并且想要在本地存储数据并将其同步回HTML5环境中,那么我知道有三种解决方案。
Firebase - 似乎在数据同步世界中坚定地试图做太多。缺点是商业和托管服务。
Hood.ie - 我不喜欢大框架,对我而言,这似乎是在尝试做太多,我不明白为什么有些功能在那里(例如电子邮件)和可能不完整。它是开源的,并且由JS场景中的一些大牌创建,所以它当然值得考虑。
SyncIt - 免责声明我写了这篇文章,所以我只看到它的优点,当然认为这是最好的解决方案。 SyncIt是OSS,只是进行数据同步而不是其他任何东西。它是由具有小API的非常分离的组件组成的,所以将Node.JS后端改为Rails只需要一天左右的工作(我不知道rails但会帮助这样的努力)。它具有良好的测试覆盖率,主要是VanillaJS,因此应该是未来稳定的技术基础。
答案 1 :(得分:1)
本地强>
为什么不使用Rails应用程序但使用所有本地组件?
例如,您可以在本地使用MYSQL
/ PGSQL
;在本地安装web server
,然后将简单域添加到您的hosts文件以联系
这将允许您将本地请求视为生产,使您能够在浏览器中加载域,并让它像连接到真实网站一样运行:
-
<强> DB 强>
您可以install mysql使用以下内容:
如果你安装了它,只需进入database.yml
并将设置更改为本地设置:
#config/database.yml
production:
...
host: 127.0.0.1
-
服务器强>
虽然您可以运行Rails服务器,但只能在development
模式下运行。
您可以更好地安装Apache
(to handle inbound requests) and Phusion Passenger
来运行Rails环境
您可以使用this tutorial执行此操作(如果您发表评论,我可以提供具体信息)
-
<强>域强>
最后,您可以在hosts
文件中设置域名
您需要做的就是使用127.0.0.1
之类的域名掩盖Rails.app
,所以如果您转到http://rails.app
,它会提出您的申请:
#hosts
127.0.0.1 rails.app
答案 2 :(得分:0)
您可以从Railcast使用机架离线
尝试本教程match "/application.manifest"=. Rails::Offline
<html manifest="/application.manifest">
ENV["Rails_ASSET_ID"] =""
上,这将禁用资产文件中的时间戳,将其添加到application.rb配置文件中
现在你让应用程序离线仍然需要修复一些代码以使其完美运行