jRails是Rails + jQuery必须的吗?

我是rails的新手(使用rails 2.3.10)并且想在特别是jquery ui中使用jquery。 该项目是一个全新的项目,我打算使用jquery ui的一些小部件,如datapicker和selectable等。我听说可以安装jrails来替换rails2中的原型,我有以下问题。

  1. 在开发新的rails应用程序方面,有和没有jrails的rails有什么区别?
  2. 使用jrails有什么好处?
  3. 在我的rails应用程序中使用jquery ui小部件是必须的吗?
  4. 任何推荐的教程,将jquery插件特别是jquery ui可选小部件集成到rails应用程序中?

谢谢batterhead

首先,如果你正在编写一个全新的项目,我建议考虑使用Rails 3.除此之外,它实际上抽象出了Rails使用的默认JS框架,因此从Rails 3中完全删除Prototype要容易得多。

至于使用jQuery UI,没有什么能阻止你在项目中包含jQuery和jQuery UI。 原型和jQuery可以在你的应用程序中一起生活(尽管你需要设置一个标志,以便jQuery不会覆盖原型的“$”函数;如何做到这一点是另一个问题)。

编写jRails的唯一原因是因为Rails 2的RJSfunction – 在服务器上编写javascript模板的能力。 Prototype本质上与Rails的RJSfunction相关联,因为RJS的所有辅助方法都会转换为Prototype调用。 在Rails 3中,该function已被弃用,支持使用更加不引人注目的javascript(UJS)技术,因此所有JS代码都保留在客户端。 因此,对Prototype的依赖不再是Rails 3中的问题。


TL; DR

  1. 没有jRails,所有javascript生成的服务器端都将转换为客户端的原型javascript调用 – RJS模板助手方法, link_to :method => :delete calls等。

    使用jRails,所有这些服务器端方法将转换为客户端的jQuery调用。

  2. 往上看; Rails 2应用程序生成javascript的服务器端助手将使用jQuery而不是原型。

  3. 不,jRails只影响javascript生成的服务器端。

  4. 您可以在应用程序中包含和使用jQuery,就像在Rails 2中包含任何其他javascript资源一样。一旦包含jquery,它与在纯HTML上使用它没什么不同,所以请看jQuery UI教程如何使用日期选择器或可选择的 。

另外,使用Rails 3,而不是Rails 2。