Rails vs Backbone:谁应该对模板和视图负责?

时间:2012-09-29 03:21:41

标签: ruby-on-rails-3 templates backbone.js ruby-on-rails-3.2

作为练习,我打算用Backbone.js替换我的Rails应用程序的所有前端方面。该计划的一部分包括重新设计一切到CSS。

我正在努力解决的问题是委派模板和观点的责任。

完全在Backbone中实现新前端有什么好处,因此只使用Rails作为API?

在处理应用程序的HTML元素时,如何在Rails和Backbone之间取得适当的平衡?

1 个答案:

答案 0 :(得分:5)

由于似乎没有人会对此发表答案,所以我只提出两点意见(我在其他地方写过关于如何让rails和backbone.js运作良好的问题)在一起:rails and backbone working together)。

在这种情况下,大多数人都倾向于完全放弃rails视图并将所有内容迁移到backbone.js。

这就是我在a project that I'm working on right now中所做的。

这是事件的自然过程,特别是一旦你开始习惯使用backbone.js和结构化javascript可以做的所有复杂有趣的事情,就很难回头并实现标准的无状态HTML页面。

正如我在上面提到的其他答案中提到的那样;但是,完全放弃HTML视图和无状态层需要付出代价。在我的情况下,我打算只在应用程序达到某个功能级别时,为GET请求为非js启用的浏览器添加纯HTML页面。我们不会支持POSTPUT请求,除非用户启用了javascript(或者除非他们想要通过JSON API)。

这是我所达成的平衡:无状态HTML(无JS)用于访问数据,但JS需要发布/更改数据。您的选择将根据您的使用案例和目标用户而有所不同。

我要提到的另一件事是,如果您已经在项目上使用rails HTML视图一段时间了,那么您可能没有准备好切换到backbone.js所需的初始开销。这不仅仅是为ERB交换HAML:您正在从无状态前端迁移到有状态前端,这是一个潜在的巨大变化(取决于应用程序的复杂性)。我自己对这种变化的深度有点毫无准备,并且在进行切换后让我们的应用程序回到正轨之前必须做一个很多的追赶。我们很早就完成了这一切换,并且已经实现了最少的功能。

无论如何只是一些想法,希望他们帮助。