结合Ruby on Rails和Backbone

Kar*_*vos 8 ruby ruby-on-rails backbone.js

我很想知道这一段时间,但还没有找到答案.

为什么要在Rails应用程序中使用Backbone.js exaclty?是扩展功能,为你的JS创建更多的MVC模式,构建更好的API ......?

目前我看不出你为什么要使用它的原因,因为我不认为我理解Backbone.js的概念

nat*_*vda 4

Rails 的一大优点是您拥有一种平台和一种语言,您可以使用它来处理服务器代码并可以生成客户端代码(使用视图)。

毫无疑问,一旦您想使用 javascript 和 jquery 改善用户体验,这种理论上的优势很快就会开始消失。所以实际上你还是要学两种语言。

但仍然:所有模型、业务规则……都是在服务器端用 Ruby 处理的。这也意味着服务器必须始终可访问。

javacript/client MVC(如 Backbone.js、Sproutcore 等)可以为您提供更原生的应用程序感觉。单个网页应用程序,例如 Gmail。根据您的要求,此类平台有一些非常有效的用例。例如,在连接性较低的地方或设备中,拥有不需要始终“在线”的 Web 应用程序可能非常有用(使用 HTML5)。它可以将数据和编辑保存到本地存储,并在设备重新上线时同步回服务器/数据库。

但是,结合 Rails 开发客户端 MVC 应用程序有一个很大的缺点:您必须进行一些双重开发(与使用 flex/silverlight 时相同)。您的模型需要在服务器和客户端上定义。我可以想象可以进行一些改进,就像在客户端 MVC 上您实际上使用的是演示者类,它在服务器端可以存储在不同的模型/表中。但仍然会存在逻辑、模型的重复……

所以这就是为什么我认为对于大多数应用程序来说,目前切换到某些客户端 MVC 框架并不明智。这将是更多的工作。

但是,当您确实需要真正的本机应用程序或单页 Web 应用程序的外观和感觉时,JavaScript 客户端 MVC 框架就是您的最佳选择。如果您确实需要客户端 MVC 框架,我会建议Sproutcore

要简单地 ajax 化您当前的 Rails 应用程序(减少每个页面的加载时间),请查看pjax-rails

  • 似乎 AR/DataMapper 模型上的某种“#to_backbone”反射方法是值得尝试和编写的一件很酷的事情。 (9认同)