我对Sinatra(红宝石框架)感到困惑。
它是一个轻量级的Rails替代品还是你可以让它们并排运行?
你可以做一个Web应用程序(如在Rails中)吗?例如推特克隆?
答案 0 :(得分:64)
Sinatra不是Rails。它是一个用于简单网站的微框架,您可能只需要定义一些操作。您可以将Sinatra应用程序设置为您想要的复杂程序,但是您可能会比使用Rails更快地将代码变成一个疯狂的混乱
。虽然不是100%准确,但Sinatra大多适合Page Controller架构模式,而Rails是一个明确的MVC实现。
具体回答您的问题:
答案 1 :(得分:17)
我们目前正在将Sinatra用于生产项目(尚未部署,仍在开发中)。
基本上它围绕着遗留应用程序使用的数据库,并在内部向其他应用程序公开REST Web服务,这样他们就可以与遗留应用程序进行交互,而无需直接访问数据库。
考虑了Rails,但没有使用,因为:
鉴于这些要求Rails是可用的,但是过度杀伤,而Sinatra很好地击中了这个位置。
答案 2 :(得分:5)
我的答案有一点点(因为我之前没有真正部署过sinatra应用程序),但是sinatra的“甜蜜点”是微应用程序:一个小的应用程序,其中一个完整的MVC框架将是矫枉过正。使用Sinatra,您可以使用单个代码文件构建整个Web应用程序。
“微型应用”的一个例子是rubular(但请注意,我不知道它写的是什么框架)。 Rubular做了一件事,有一点非常好。使用rails会有点矫枉过正。
答案 3 :(得分:1)
我们使用Sinatra作为http://tweetarium.com,就像madlep的用例一样,网站的大部分都只是AJAX调用,因此视图非常简单。
我们不使用ORM,只是从twitter API序列化JSON并在TokyoCabinet中缓存它
我个人认为Sinatra非常适合API。每个版本可能是安装在不同端点的不同Sinatra应用程序,您可以在Rails应用程序中运行它。