你用Sinatra做什么用的?

Vic*_*tor 27 ruby sinatra

我对Sinatra(红宝石框架)感到困惑.

它是一个轻量级的Rails替代品还是你可以让它们并排运行?

你可以做一个Web应用程序(如在Rails中)吗?比如一个twitter克隆?

hob*_*ave 64

Sinatra不是Rails.它是一个用于简单网站的微框架,您可能只需要定义一些操作.您可以将Sinatra应用程序设置为您想要的复杂程序,但是您可能会比使用Rails 更快地使代码变得疯狂.

虽然不是100%准确,但Sinatra主要适用于页面控制器架构模式,而Rails是一个明确的MVC实现.

要具体回答你的问题:

  • 不是要取代Rails
  • 可以并排运行
  • 可以在Sinatra创建一个推特克隆


mad*_*lep 17

我们目前正在使用Sinatra进行生产项目(尚未部署,仍在开发中).

基本上它围绕着遗留应用程序使用的数据库,并在内部向其他应用程序公开REST Web服务,这样他们就可以与遗留应用程序进行交互,而无需直接访问数据库.

Rails被考虑但未使用,因为:

  • 没有视图层(本质上是视图只是JSON/XML REST响应)
  • 模型是使用Sequel实现的(ActiveRecord很糟糕,处理古怪的数据库与古怪的非标准结构,但续集相当不错)
  • 控制器和路由层非常简单(尽管在Ruby支持的情况下实现了一些复杂的业务逻辑)

鉴于这些要求Rails是可用的,但是过度杀伤,而Sinatra很好地击中了这个位置.


Myr*_*ton 5

我的答案有一点点(因为我之前没有真正部署过sinatra应用程序),但sinatra的"甜蜜点"是微应用程序:一个小的应用程序,其中一个完整的MVC框架将是矫枉过正.使用Sinatra,您可以使用单个代码文件构建整个Web应用程序.

"微应用程序"的一个例子是rubular(但请注意,我不知道它写的是什么框架).Rubular做了一件事,有一点非常好.使用rails会有点矫枉过正.