代码之家  ›  专栏  ›  技术社区  ›  firecall

Rails 3.0 beta版和JS版的jQuery助手

  •  5
  • firecall  · 技术社区  · 14 年前

    带有原型jQuery驱动程序的不引人注目的JavaScript助手

    那么如何设置Rails3来使用jQuery呢?默认情况下,它仍然加载所有原型库。

    我认为这意味着Rails3内置了类似于jRails插件的功能,但也许我误解了:)

    另外,作为一个额外的问题,如果我使用Prototype,有没有办法让Rails加载缩小的版本,甚至更好的办法是使用一个串联的JS文件来减少http请求?

    谢谢。

    6 回复  |  直到 14 年前
        1
  •  2
  •   Josh Delsman    14 年前

    创建Rails 3应用程序时,只需传递 -J 参数也是:

    $ rails app_name -J
    

    jquery.js 归档到 public/javascripts rails.js 文件。你可以在这里得到:

    http://github.com/rails/jquery-ujs/blob/master/src/rails.js

    编辑:您需要在布局的顶部包含这些文件以获得功能。您可以通过以下方式实现:

    <%= javascript_include_tag "jquery", "rails" %>
    

        2
  •  1
  •   Sam Coles    14 年前

    不引人注目的JS并不是指PrototypeHelper方法,而是指远程窗体和链接等。概念是你包括 :remote => true form_for 或者任何支持它的助手方法,然后一个驱动程序调用 rails.js submit click 事件并通过xhr发送。

    要使用jquery,您只需要用jquery ujs驱动程序替换原型ujs驱动程序(随rails一起提供),jquery ujs驱动程序在rails3beta发布前不久被提取到自己的repo中。你能找到的 here .

        3
  •  1
  •   Paul    14 年前

    退房 Google Closure

    它可以将多个javascript文件转换为一个压缩的js文件。它甚至可以找出您不使用的库的哪些部分,并将其删除。

        4
  •  0
  •   klew    14 年前

    我不知道Rails3,但我会尽量回答这个问题。

    您可以在public/javascript目录中放置任何您想要的内容。默认情况下,它将加载文件:prototype.js、effects.js、dragdrop.js和controls.js( read more plugin .

        5
  •  0
  •   Dan McNevin    14 年前

    我也在努力用Rails3转换我的旧ajax。

    data-remote=true 当你加上 :remote => true 像这样的 link_to 它应该取代 link_to_remote

    远程数据=真

    我确实在github上找到了一些javascript来开始关注这些事件:

    prototype

    jQuery

    我认为,为了真正加载jquery而不是prototype,您只需将其下载到 public/javascripts javascript_include_tag :all ,或重写 javascript_include_tag (不推荐)