【问题标题】:Adding JQuery or Javascript (not coffee.script) code to a Rails 3.2 app?将 JQuery 或 Javascript(不是 coffee.script)代码添加到 Rails 3.2 应用程序?
【发布时间】:2013-10-01 01:10:17
【问题描述】:

我刚刚完成了Code School's JQuery 入门课程,jQuery Air: First Flight。这是学习 jQuery 基础知识的好方法,当我完成后,我对在我的新的小 rails 3.2 应用程序中添加一些 jQuery 感到非常兴奋。不过,如何实现这一点并不明显。

默认情况下,rails 3.2 带有 jquery-rails 和 coffee-rails gems。新的 3.2 应用程序都以咖啡脚本的形式设置接受 javascript 和 jquery。虽然我很快就会学习咖啡脚本,但现在我所拥有的只是 jquery。

更具体地说,我应该添加类似的内容:

<script type="text/javasript" src= "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

进入我的 app/views/layouts/application.html.erb 文件的头部,或者是 jquery-rails gem 和

<%= javascript_include_tag "application" %>

已经在了吗?

我应该在我的应用程序中的什么位置放置 jQuery 代码?对于我生成的每个新控制器,rails 3.2 在app/assets/javascripts/ 目录中创建一个不错的[new_controller].js.coffee 文件。如果我把它放在那个.coffee 文件中,Javascript 就不起作用。有人有什么想法吗?

【问题讨论】:

    标签: javascript jquery ruby-on-rails-3.2


    【解决方案1】:

    经过试验并与Code School 的好人通信后,我想出了以下答案,其他人可能会觉得有用:

    Rails 3.2 应用已准备好接受咖啡脚本。事实上,每个新控制器都会自动生成一个 [new_controller].js.coffee 文件,准备好接受一个新的咖啡脚本。虽然我很快就会接触到coffeescript,刚刚完成JQuery Air: First Flight,我只知道jQuery。

    这是将 jQuery 添加到 Rails 3.2 应用程序所需要做的事情 默认,资产管道设置:

    1) 将javascript_include_tag(:application) 放入 app/views/layouts/application.html.erb 文件。 Code School 的 Adam Fortuna 指出,通常将该行放在页脚中,这听起来是个好建议。这可能允许页面的其余部分在 javascript 之前加载。

    2) 在 'app/assets/javascripts/' 目录中创建一个新文件,其中包含 后缀 .js 在我的例子中是 user.js。注意:不要命名你的 jQuery 文件与自动创建的.js.coffee 文件相同,否则不会 被读取,可能是因为单独的咖啡脚本文件会。

    3) 将您的 jQuery javascript 添加到该文件中,尽情享受吧!它已经是您的 3.2 应用程序的一部分,包含在 jquery-rails gem 中。

    如果其他人对在 rails 3.2 应用程序中使用 jquery 和 javascript 而不是咖啡脚本有深入了解,请添加。也就是说,我的下一步是学习咖啡脚本!

    【讨论】:

      【解决方案2】:

      你不需要做任何事情。默认情况下,Rails 会为您提供 jquery。如果你的文件扩展名不是coffee,那么你就不需要使用coffeescript。

      您可以阅读this 以更好地了解其中的魔力。

      如果一定要自己添加,可以这样写:

      <%= javascript_include_tag "http://example.com/main.js" %>
      

      阅读 this 了解 javascript_include_tag 的工作原理。

      【讨论】:

      • 我的天啊,SO 社区很快!在 9 分钟内,我回答了我自己的问题——在 codeschool 支持下工作了一天多——也有 3 人回答了这个问题!非常感谢。我现在明白了。下次我从 SO 开始。
      【解决方案3】:

      确保 //= require jquery 是 application.js 或 application.js.coffee 的顶部,如果你安装了 jquery-rails gem,你应该很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-11
        • 1970-01-01
        相关资源
        最近更新 更多