将Rails部署为桌面应用程序

时间:2011-11-28 11:08:02

标签: ruby-on-rails ruby desktop-application

我刚刚开始RoR开发两周,到目前为止它是非常棒的编程语言。这让我印象深刻,以至于我开始考虑将客户项目的编程语言从PHP改为RoR。但我想知道的是,在本地计算机上使用 RoR Web应用程序时,是否可以将其作为 Native App 。到原生应用一词,我的意思是..

  1. 用户每次启动计算机时都不必运行脚本/服务器 rails服务器
  2. 通过网络浏览器访问它或其他任何东西都可以。
  3. 可以使用Window 7或Window XP
  4. 运行

    欢迎提出其他建议。 (包括不使用RoR开发本地应用程序的原因)

6 个答案:

答案 0 :(得分:5)

我个人认为想要将Rails应用程序部署为桌面应用程序并不是一件荒谬的事情,但这当然不是最简单的事情。下面列出了您将需要的内容:

  • 编译的可分发的ruby解释器
  • 可分发的数据库
  • 用于引导整个事物的脚本(最好是在点击图标或系统启动时运行)
  • 安装程序

任选:

  • 在qt或java中编写一个简单的shell(可能还有ruby绑定),用于处理启动和停止rails应用程序,并为客户提供了一个webframe,而不是标准的Web浏览器。

Here's关于将rails应用程序部署为桌面应用程序的教程,但对于debian来说,这应该会让你朝着正确的方向前进。但是你最好的选择是在{* 3}}中使用红宝石快速申请。

答案 1 :(得分:3)

由于rails是用于Web开发的框架,因此无法避免启动rails服务器以在本地计算机上显示某些内容。您可以通过将服务器作为服务运行来隐藏服务器的启动这一事实,而不会让用户知道它,但这只是你可以得到的。

所以是的,可以将您的应用程序捆绑到“本机应用程序”中,但我担心它会非常脆弱,因为有太多的部分需要组合在一起:ruby本身,要使用的数据库,rails和所有其他宝石。很有可能你会有一个需要编译的宝石,然后你就麻烦了。

底线:它不值得,无论是托管您的应用程序还是选择更好的解决方案来开发仅在本地运行的东西。

答案 2 :(得分:2)

也许我错了,但你似乎错过了RoR不是编程语言的事实。 Ruby是一种编程语言,RoR是Web开发框架。无论如何,如果你想开发桌面应用程序,你可以使用Ruby和Bowline这样的框架(以保持MVC精神)。

答案 3 :(得分:2)

可能超出主题,但如果你想制作原生应用程序,或许可以制作原生应用程序?我的意思是,开发Web应用程序然后在本地托管它的目的是什么?

至少,您可以考虑使用免费主机,例如heroku。 http://your-project-name.heroku.com将授予您5mb数据库和1名工作人员。它是免费的,可以为您节省很多麻烦,并且可以让您更轻松地为您的客户部署更新的版本。

如果他们想要双击打开应用程序,只需让他们在桌面上放一个书签。

答案 4 :(得分:2)

如果需要Web应用程序,请构建Web应用程序。如果您要构建桌面应用程序,请尝试MonkeybarsAppcelerator

答案 5 :(得分:1)

我的回答很晚,但无论如何我遇到了同样的问题,并使用gem ocra为windows构建一个exe。 也可以生成一个设置来在寄存器中安装程序。

仍然需要启动服务器,但用户只需单击exe程序;打开控制台并提供一些说明,例如'在服务器启动后,打开浏览器并转到localhost:3000;完成后按Ctrl + C退出。

可以将服务器作为服务启动,但我认为我的用户更愿意知道程序是否正在运行。

ocra设置起来并不容易,但最终效果很好。