我对RoR或RoR本身的组件的替代品感到好奇。
有些研究在此提出了ORM alternatives to ActiveRecord。
剩下的就是关于...的替代品的问题。
真的,我对所有人都非常满意,但我只是出于纯粹的好奇心。
答案 0 :(得分: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,这是一个附加组件,而不是替代方案。