Lov*_*ode 66 ruby ruby-on-rails sinatra
我已经完成了一些Sinatra和Rails样本,但我很难搞清楚哪些功能属于哪种技术.
使用Sinatra/Rails可以获得什么?它只是ActionPack/ActionView吗?如果我错了,请纠正我,但我可以使用Webrick/Mongrel并提供我的.erb文件吗?我可以在这些文件中使用ActiveRecord技术,仍然可以访问帖子变量,会话状态和查询字符串变量吗?
所以,我问你们的是,如果我从上面的类似PHP的场景开始; Webrick + ERB + ActiveRecord,使用Sinatra可以获得什么?通过使用Rails我还能获得什么?
ehs*_*nul 62
对于Sinatra来说,它几乎就像是Rack的包装.所以你首先需要问一下Rack的意义.Rack基本上是框架应该如何返回结果的规范,它可以使用Rack支持的任何Web服务器返回的内容.所以它实际上是一个兼容层,允许您随意选择框架/服务器组合,而不必担心它们是否可以一起工作.如果您的框架符合Rack标准,您应该能够通过Rack在几乎任何服务器上进行部署.
现在,Rack是非常低级的.像Sinatra这样的框架可以为您提供良好的路由,帮助,过滤器之前/之后等等.您只需要查看文档即可了解您可以获得的内容.Rails功能更强大,在很多方面都是"神奇的".也就是说,你可能会在Rails中写一行,最后会做很多事情,对某些人来说这是一件好事,对于一些人来说太神奇了.因为这个原因,我个人更喜欢Sinatra,至少在了解Rails内部之前是这样.
Rails获得的是ActionView/ActionPack.但你可以用Mongrel/Erb代替.这是不同的东西.
这是你在视图中拥有的所有herlper,如name_route或表单中的错误管理.它是所有资源管理和所有插件,如InheritedResources.Rails的优势.
有一些工具,如Padrino环境,可以帮助您拥有所有这些帮助.但是在所有插件激活后它真的开始了吗?我不这么认为.
使用Rails 3,Rails是一个包含大量RackMiddleware的完整Rack应用程序.你可以放下一些中间件来增加你的响应.