19

我正在开发一个使用 Ruby on Rails 的应用程序,主要是作为学习该语言的借口。

这不是一个基于 Web 的应用程序 - 也许我选择了错误的语言,但是......

我的理解是,为了在其他人的计算机上运行这个应用程序的实例,他们需要在 Rails 上安装 ruby​​,以及一个网络服务器(或者 webrick,也许),以及我的应用程序代码。

我只是好奇是否有任何其他选项可以将我的应用程序作为独立应用程序分发,或者只是一种简单的方法将 Web 浏览器和 ROR 与我的应用程序一起打包以进行简单的一步安装?

4

7 回答 7

7

我个人从来不需要这样做。但是,我遇到了本教程http://www.erikveen.dds.nl/distributingrubyapplications/rails.html,我认为这会有所帮助。本教程介绍了如何将 Rails 应用程序实际转换为独立的 exe 文件。

于 2008-09-11T02:45:26.390 回答
3

请注意,Slingshot 似乎是一个死项目(见评论)。出于历史目的,我将把这个答案留在这里,因为它不太可能回来

Joyent 的弹弓可能是一个不错的选择。

Joyent Slingshot 允许开发人员像标准桌面应用程序一样部署 Rails 应用程序,它可以在线和离线(同步)工作,具有拖放功能,并与所有其他桌面应用程序交互。

使用 Joyent 弹弓:

  • 创建混合 Web/桌面应用程序
  • 同步线上线下数据
  • 在线和离线应用程序使用相同的代码
  • 轻松部署和更新您的应用程序
  • 拖入和拖出应用程序

以下是一些进一步的链接,可帮助您进行评估和/或帮助您入门:

于 2008-09-11T11:42:41.450 回答
2

大多数人将 ruby​​ 程序(包括 Rails webapps)作为独立 exe 发布的方式是通过 ruby​​script2exe。他们在http://www.erikveen.dds.nl/distributingrubyapplications/rails.html描述了如何打包 Rails 应用程序。Ruby、Rails 和所有相关的库都将包含在 EXE 文件中。

正如其他人所提到的,Ruby 不一定是 Rails,如果您真的想要一种简单的方法来用 Ruby 编写可分发的 GUI 应用程序,Shoes是一个很好的起点。

于 2008-09-11T21:57:12.457 回答
1

您可以通过将 Ruby on Rails 冻结到您想要在项目中使用的 Rails 版本来包含它。他们称之为冻结。用户无需安装 Rails 即可使用您的应用程序。您可以使用您在项目中使用的任何库来执行此操作。如果项目使用库,只需将其放在项目中的 Vendor 文件夹下即可。然后使用类似于@Josh回答的工具来打包它。

不过,您将需要一个 Web 服务器来运行该项目。没有办法解决这个问题。Ruby on Rails 在这方面就像 ASP.NET,因为它是一个服务器端框架。服务器使用 Rails 框架运行代码并将 HTML 输出到浏览器。

不幸的是,你可能选择了错误的框架来做你想做的事。除了 Ruby on Rails,您可能还想查看Shoes,这是一个使用 Ruby 开发 GUI 应用程序的框架。

于 2008-09-11T03:04:04.613 回答
1

You could always consider compiling your Ruby to JVM byte-code (via JRuby) or .NET byte-code (via IronRuby) to distribute to people who have those virtual machines and don't want to install a Ruby runtime.

You might want to check out Shoes for building desktop applications in Ruby. Rails really is tuned for building websites.

于 2008-09-11T13:23:32.113 回答
1

可能是Gears on Rails

于 2008-09-11T02:42:59.250 回答
0

您没有具体说明它是否应该是 GUI 应用程序。从其他答案,我猜是这样。

因此,您需要明确您的目标是什么。RoR 是一个专门用于 Web 应用程序的框架。如果您的目标是学习 RoR,我会说让自己获得一些便宜的虚拟主机并让自己成为一个应用程序。如果您的目标是学习 Ruby,而不一定是 Rails,那么 Shoes、IronRuby、JRuby、MacRuby 等可能是不错的选择。

于 2008-09-11T13:46:20.107 回答