Ruby进行Web开发,不使用Rails?

10

由于不可控因素,我被要求进行Ruby Web开发,并且不使用Rails或其他类似Merb的重量级框架。 我想知道是否有人遇到过这种情况,可以推荐最佳实践或资源来解决这个问题。我希望避免令人憎恶的...

 out.print('<td class="foo">'+some_data+'</td>')

网站开发的风格。一位同事建议使用 Rack 作为一个轻型框架,但文档不够详细,而且在市场上似乎没有得到证明。


1
“heavyweight” 是什么意思? - jshen
实际上,Rails现在(截至2.3版本)依赖于Rack。 Rack非常底层,所以你可能找不到你寻找的那种文档。但它是一款非常好的软件。 - webmat
9个回答

17

看看 Sinatra。它是一个框架,但不会太复杂。


1
Sinatra可以处理比一些人一开始想象的更多的负载和功能,足以几乎与Rails相媲美。 - Robert K
7
严格来说,如果你添加足够多的东西,一份完全空白的文件就可以“变成”Rails。 - Chuck
1
这就是为什么你使用Sinatra,以避免出现这种情况。 - Robert K

6

看看 RackSinatra 或者 Waves。Rack 在市场上并不是未经验证的。现在 Rails 是建立在 Rack 之上的!它也不是一个框架,它允许框架专注于它们的差异化而不是低级繁忙的工作。

你也可以直接使用 jruby 和 java servlet api。顺便说一下,所有基于 Rack 的框架都可以轻松地在 jruby 上运行。


3
out.print('<td class="foo">'+some_data+'</td>')”,您至少需要使用一个模板系统。有许多可用的模板系统,例如ERb(Rails默认使用)和Haml。


2

使用Ramaze,我正在生产环境中运行它,使用JRuby和Glassfish。

开发简便,社区支持稳固。没有不必要的东西。就像Ruby一样,它不会妨碍你。


2
我可以跟随所有推荐Sinatra的人一起使用它。它很紧凑,编码非常愉快,并且可以在Rack上部署,这意味着您可以在您最喜欢的堆栈中运行它(Mongrel、FCGI、Thin、Passenger等)。
当我需要快速启动项目时,我尝试了Sinatra,它的扩展性和性能都非常好,以至于我今天仍在使用它来处理超过80,000个繁重请求的工作。

1

像往常一样,好老的cgi.rb可用。


如果您使用cgi.rb,请考虑创建一组元素类来包装它。 - finnw

0

这很有可能,我的整个网站都是用纯 Ruby 编写的。

我还没有遇到任何问题。我用以下代码开始我的应用:

require "mysql"                               # module | mysql
require "cgi"                                 # module | cgi
require "date"

0

你看过Sinatra了吗?它是一个框架,但不像Rails那么重。我自己还没有测试过,但似乎很容易使用。

此外,Ramaze 似乎也很好用和模块化,不过我不确定它是否符合你的需求。

我不知道直接使用Ruby作为cgi有多容易,但是使用它将布局与代码分离应该是相当容易的。有很多Gem可以做到这一点,而不需要使用框架。


0

我的个人选择和推荐是Ramaze--它尽可能简单,但不会过于简单。干净简洁而不牺牲功能强大。与您选择的JS库(jQuery、Prototype、Mootools)或ORM(Sequel、Datamapper、M4DBI)或模板引擎相得益彰。此外,不要忘记像nanoc这样的静态生成器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接