【问题标题】:Jquery + Rails problematic, is that true?Jquery + Rails 有问题,是这样吗?
【发布时间】:2010-10-31 10:07:39
【问题描述】:

我在上一个问题中看到 cmets 说最好将 Prototype 与 Rails 一起使用。然而,我自己的经验是,Jquery 是一个优秀的 Javascript 库。作为 Rails 的新手,我还没有研究如何将 Jquery 与 Rails 一起使用,但我认为这会起作用。这可能是一个有问题的组合——尤其是与 Ajax 相关的组合——并且我可能需要改用 Prototype 是否正确?

【问题讨论】:

    标签: javascript jquery ruby-on-rails prototypejs


    【解决方案1】:

    自 3 年以来,我一直在使用 rails 和(仅)jquery 从事我所有的项目。到目前为止,从未真正遇到过任何(严重)问题。

    有一个名为 jrails 的插件,它可以替代原型。

    http://github.com/aaronchi/jrails/tree/master

    更新:有了它,您可以使用

    【讨论】:

    • 有趣的插件。感谢您的链接。必须进一步调查。我实际上想知道如何用 Jquery 做 replace_html,所以这很棒。
    • 我要补充一点,除非您使用任何明确使用原型的东西(Javascript 字符串与诸如 remote_form_for 之类的 Rails 助手),否则这很容易。在我的一个项目中,我使用了一个需要原型的管理后端插件,所以我必须做一些事情来确保它能够正常工作,但除此之外,没有任何问题。
    【解决方案2】:

    我将 jQuery 和 Prototype 与 rails 一起使用。 jQuery 用于 DOM 操作和thickbox(我最喜欢的灯箱插件),但我现在使用 AJAX 原型。没有特别的原因,只是还不想使用 jrails 插件。我相信我将来会这样做。如果你同时使用,这应该在你的 head 标签中:

        <%= javascript_include_tag 'prototype' %>
        <%= javascript_include_tag 'jquery' %>
        <script type="text/javascript">
            var $j = jQuery.noConflict();
        </script>
    

    然后将 jQuery 与 $j 一起使用

    【讨论】:

    • 我刚刚注意到包含 jQuery last 很重要,所以请记住这一点。
    【解决方案3】:

    我在生产环境中的工作中使用 jQuery 和 Rails,并且只有好话要说。我们也使用 AJAX。我能想到的唯一问题是 jQuery.noConflict() 调用,如果你同时使用 jQuery 和原型,这是必要的。

    【讨论】:

      【解决方案4】:

      jrails 的唯一问题是 rjs 测试。但是这个 patch 添加了 8 个缺失的测试助手中的 5 个。

      【讨论】:

      【解决方案5】:

      将 jquery 与 rails 一起使用完全不会有问题,它只是不是原生支持的 JavaScript 库。您实际上不必使用 rails 中的任何 JavaScript 内置函数,并且(默认)应用程序的 RESTful 结构应该使 AJAX 变得简单。

      有了prototype和scriptaculous,很多AJAX工作已经为你完成了。使用 jquery,您只需自己编写更多的 JavaScript。

      【讨论】:

      • 好的,Rails ajax 助手不能被调整来使用 Jquery。
      【解决方案6】:

      Rails 是为与 Prototype for AJAX et 一起工作而构建的。 al.,但您没有理由必须使用 Prototype。我自己是 jQuery 粉丝,你绝对可以将它与 Rails 一起使用。

      您仍然可以使用 jQuery 在 Rail 中完成的大量 AJAX 工作,这不是问题。

      而且,正如 kmorris 所说,如果您在同一站点上使用 jQuery 和任何其他 javascript 库,请务必在其中添加 jQuery.noConflict() 行,否则会发生非常糟糕的事情。

      【讨论】:

      • 另外,Rails 3 将更多地与 JavaScript 框架无关。尽管它仍会随 Prototype 一起提供。
      【解决方案7】:

      试试这个:https://github.com/xpepermint/js_erb

      Javascript 成为应用程序的一部分,i18n 和 js 模板变得可用等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-26
        • 1970-01-01
        • 1970-01-01
        • 2020-05-18
        • 2012-07-17
        • 1970-01-01
        相关资源
        最近更新 更多