【问题标题】:How to make desktop or offline app from Rails background如何从 Rails 后台制作桌面或离线应用程序
【发布时间】:2014-08-22 17:33:21
【问题描述】:

我已经构建了一个 Rails 应用程序,该应用程序将在没有互联网的地方使用。我正在尝试确定将我的工作尽快转化为功能的最佳途径——无论是通过桌面应用程序还是我所拥有的某些离线版本。

该应用程序的用途如下: - 从一对一的个人调查中记录传记数据 - 导出本地输入的人口统计数据集并导入和处理其他类似的数据集 ---- 不需要支持任何过于复杂的东西(图形或其他方式),只需使用带有 Backbone.js 的基本 Rails 即可实现交互式调查视图

鉴于我拥有的 Rails 应用程序(以及我的 Rails 背景),我只是想知道如何以最快的方式获得可以离线工作的功能。我想要钛之类的东西吗?谷歌齿轮?棱镜或流体之类的东西?我主要关心的是让某些东西快速运行。

【问题讨论】:

    标签: ruby-on-rails web-applications desktop-application offlineapps


    【解决方案1】:

    如果您有一个离线应用,并且您想在本地存储数据并在类似 HTML5 的环境中将其同步回,那么我知道有三种解决方案。

    • Firebase - 在数据同步世界中似乎坚定地反对尝试做太多事情。缺点是它是商业和托管服务。

    • Hood.ie - 我不喜欢大框架,对我来说这似乎是在试图做太多事情,我不明白为什么其中的某些功能(例如电子邮件)并且可能不完整。然而,它是开源的,并且是由 JS 领域的一些知名人士创建的,所以它当然值得好好考虑。

    • SyncIt - 免责声明我写了这个,所以我只看到它是好的部分,当然认为它是最好的解决方案。 SyncIt 是 OSS,只是做数据同步而已。它由非常解耦的组件和小 API 组成,因此将 Node.JS 后端更改为 Rails 应该只需要一天左右的时间(我不知道 Rails,但会帮助这样的工作)。它具有良好的测试覆盖率,并且主要是 VanillaJS,因此应该是未来的稳定技术基础。

    【讨论】:

      【解决方案2】:

      本地

      为什么不只使用 Rails 应用程序,而使用所有本地组件?

      例如可以在本地使用MYSQL/PGSQL;在本地安装一个web server,然后在你的hosts文件中添加一个简单的域来联系

      这将允许您将 本地 请求视为生产请求,让您能够在浏览器中加载域,并让它像连接到真实网站一样运行:

      --

      数据库

      您可以通过以下方式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 文件中设置域

      您需要做的就是用Rails.app 之类的域屏蔽127.0.0.1,所以如果您转到http://rails.app,它就会出现您的应用程序:

      #hosts
      127.0.0.1 rails.app
      

      【讨论】:

        【解决方案3】:

        您可以从Railcast 尝试本教程,它使用 rack-offline

        • 添加 gem "rack-offline"
        • 添加到路线match "/application.manifest"=. Rails::Offline
        • 这将创建一个缓存文件清单
        • 在布局视图上添加<html manifest="/application.manifest">
        • 现在您需要一个变量,以便资产将加载到离线应用程序ENV["Rails_ASSET_ID"] ="" 这将禁用资产文件中的时间戳将其添加到 application.rb 配置文件 现在你让应用离线了,仍然需要修复一些代码才能让它完美运行
        • 动态内容需要通过js和json添加,需要存储文件的动态内容 我在教程中使用相同的代码来添加内容
        • jquery.tmpl
        • jquery.offline 您可以查看更多信息。

        【讨论】:

          猜你喜欢
          • 2020-01-05
          • 2012-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-17
          • 1970-01-01
          相关资源
          最近更新 更多