首先,如果您正在编写一个全新的项目,我建议您考虑使用 Rails 3。除此之外,它实际上抽象出了 Rails 使用的默认 JS 框架,因此从 Rails 3 中完全删除 Prototype 会容易得多。
就使用 jQuery UI 而言,没有什么能阻止您在项目中包含 jQuery 和 jQuery UI。Prototype 和 jQuery 可以很好地一起存在于您的应用程序中(尽管您需要设置一个标志以便 jQuery 不会覆盖原型的“$”函数;如何做到这一点是另一个问题)。
编写 jRails 的唯一原因是 Rails 2 的 RJS 特性——在服务器上编写 javascript 模板的能力。Prototype 本质上与 Rails 的 RJS 功能相关联,因为 RJS 的所有辅助方法都将转换为 Prototype 调用。在 Rails 3 中,该功能已被弃用,取而代之的是使用更隐蔽的 javascript (UJS) 技术,因此所有 JS 代码都保留在客户端。因此,对 Prototype 的依赖在 Rails 3 中不再是问题。
TL;博士
如果没有 jRails,服务器端生成的所有 javascript 都将转换为客户端上的原型 javascript 调用——RJS 模板帮助方法、link_to :method => :delete
调用等。
使用 jRails,所有这些服务器端方法都将转换为客户端的 jQuery 调用。
看上面; 生成 javascript 的 Rails 2 应用程序的服务器端助手将使用 jQuery 而不是原型。
不,jRails 只影响 javascript 生成的服务器端。
您可以在应用程序中包含和使用 jQuery,就像在 Rails 2 中包含任何其他 javascript 资源一样。包含 jQUery 后,它与在纯 HTML 上使用它没有什么不同,因此请查看有关如何使用的jQuery UI 教程datepicker或selectable。
另外,使用 Rails 3,而不是 Rails 2。