jRails 是 Rails 必须的吗? jQuery?

发布于 2024-10-31 00:28:59 字数 388 浏览 5 评论 0 原文

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

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

谢谢 炮台

i'm new to rails (using rails 2.3.10) and would like to use jquery in particular jquery ui. the project is a brand new project and i'm planning to use some widgets from jquery ui like datapicker and selectable, etc.
i having been hearing that jrails can be installed to replace prototype in rails2 and i have the following questions.

  1. what is the difference between rails with and without jrails in term of developing a new rails app?
  2. what is the advantage of using jrails?
  3. is jrails a must for using jquery ui widgets in my rails app?
  4. any recommended tutorials of integrating jquery plugins in particular jquery ui selectable widget into a rails app?

thanks
batterhead

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅哥哥的热头脑 2024-11-07 00:28:59

首先,如果您正在编写一个全新的项目,我建议考虑使用 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;DR

  1. 如果没有 jRails,服务器端生成的所有 javascript 都将转换为客户端上的原型 javascript 调用 -- RJS 模板帮助器方法,<代码>link_to:方法=> :删除调用等

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

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

  3. 没有。 jRails 只影响服务器端生成的 javascript。

  4. 您可以在应用程序中包含和使用 jQuery,就像在 Rails 2 中包含任何其他 javascript 资源一样。包含 jQUery 后,它与在纯 HTML 上使用它没有什么不同,因此请查看 关于如何使用 “nofollow">日期选择器可选择

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

First up, if you're writing a brand new project, I would recommend considering using Rails 3. Among other things, it actually abstracts away the default JS framework used by Rails, so it's much easier to remove Prototype entirely from Rails 3.

As far as using jQuery UI, nothing is stopping you from including jQuery and jQuery UI in the project. Prototype and jQuery can live together in your app just fine (though you need to set a flag so that jQuery doesn't override prototype's "$" function; how to do that is another question).

The only reason jRails was written is because of the RJS features of Rails 2 -- the ability to write javascript templates on the server. Prototype is intrinsically linked to the RJS functionality of Rails, as all the helper methods for RJS would translate to Prototype calls. In Rails 3, that functionality has been deprecated in favor of using more unobtrusive javascript (UJS) techniques, so all the JS code stays on the client side. Thus, the reliance on Prototype is no longer an issue in Rails 3.


TL;DR

  1. Without jRails, all javascript generated server-side will translate in to prototype javascript calls on the client-side -- RJS template helper methods, link_to :method => :delete calls, etc.

    With jRails, all those server-side methods will translate in to jQuery calls client-side instead.

  2. See above; a Rails 2 app's server-side helpers that generate javascript will use jQuery instead of prototype.

  3. No. jRails only affects the javascript generated server-side.

  4. You can include and use jQuery in your app in the same way you would include any other javascript resource in Rails 2. Once jQUery is included, its no different to using it on plain HTML, so look at the jQuery UI tutorials on how to use the datepicker or selectable.

Also, use Rails 3, not Rails 2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文