Ruby on Rails和/或其组件的替代品

Nob*_*bbZ 8 ruby-on-rails

我对RoR或RoR本身的组件的替代品感到好奇.

一些研究在此提出了ActiveRecordORM替代方案.

所以剩下的就是关于替代品的问题......

  1. ...控制器(ActiveController)
  2. ...视图(ActiveView)
  3. ...... RoR本身
  4. ......我在这里缺少的任何其他组件:D

真的,我对他们所有人都非常满意,但我要求纯粹的好奇心.

d11*_*wtq 19

代替ActiveRecord,有一些可供选择.最大的竞争对手(和我最喜欢的)似乎是DataMapper,然后是Sequel,Mongoid,MongoMapper.还有很多其他人,但这些都是相对较大的参与者.

代替ActionView(不是主动......行动......令人困惑,我知道),我没有遇到过任何事情.我已经看到了很多补充,但没有完全替代.我猜这意味着人们对ActionView感到非常满意.现在,还有其他模板引擎可用.这里的大玩家是HAML.使用HAML并不意味着您没有使用ActionView.您仍在使用ActionView,只需使用不同的模板预处理器.

RoR本身的替代品.还有一些.最大的玩家是Sinatra,Merb(一些人在Rails的早期开始,他们不同意Rails中的一两件事,然后Rails学到了一两件事,又把一些零碎的东西拿回来......令人困惑!) .还有Ramaze,但我对此并不了解.

事实上,Rails或多或少都无与伦比.如果您开始使用Ruby编写的Web应用程序,它可能会成为Rails应用程序或Sinatra应用程序.Sinatra满足了对Rails的不同需求.Rails希望为您提供一系列快速完成工作的工具,而Sinatra的主要目标是实现轻量级并且不受影响.Rails是巨大的,而Sinatra基本上归结为一个美化的路线图/调度员(我的意思是这是一个很好的方式),让你建立你的网络应用程序,但你认为合适.例如,Sinatra可以轻松地将小型Web管理工具打包到gem中.您可能不希望在gem中包含Rails应用程序.这将是非常矫枉过正的.

在"其他组件"方面,我想到的最重要的事情(虽然它不是Rails的东西)是Test :: Unit.虽然Rails只附带了Test :: Unit,并且不会限制您使用其他东西,但值得一提的是还有其他测试框架可用. RSpec是这里的另一个大玩家,也有ZenTest.你也可以看看作为附加组件的Shoulda,而不仅仅是另一种选择.