在 Rails 3 中使用 jQuery 插件

Posted

技术标签:

【中文标题】在 Rails 3 中使用 jQuery 插件【英文标题】:Using jQuery plugins in Rails 3 【发布时间】:2011-07-18 18:27:33 【问题描述】:

完成了 Hartl 的精彩 Rails 教程,我现在正在学习 Castledine 和 Sharkie 编写的非常好的 jQuery - Novice to Ninja。虽然我能够在我的 rails 项目中包含 jquery.js 和 jquery-ui.js,但在添加其他 jQuery 插件时我遇到了困难。

我发现当插件托管在 github 上时,我可以使用命令行将它们导入到我的项目中,并且:

[my rails app]$ rails install [github URL]

插件成功导入到 javascript_include_tag 找不到它们的 /vendor/plugin/ 目录中。这种情况提示了 3 个问题:

    有没有办法将 jQuery 插件导入到我的 Rails 应用程序中,将它们放入它们所属的 public/javascripts/ 目录中?

    如果 1 的答案是“否”,有没有办法让 javascript_include_tag 搜索供应商/插件/中的脚本?这似乎是一种不好的做法,因为 jQuery 脚本隐藏在人们通常会查找它们的 public/javascript/ 目录之外。

    如果 1 和 2 都是“否”,是否有比 $mv 或复制粘贴更优雅的方式从供应商/插件/移动文件?

注意:通过网络搜索,我在http://getsprockets.org/ 发现了 37signals 的 sprokets gem,它似乎在某些时候可能有用,但超出了我目前的需求和理解。

感谢任何想法!

【问题讨论】:

【参考方案1】:

在当前的 rails 版本中,目录是

/vendor/assets/javascripts

【讨论】:

如果您使用的资产管道基本上是轨道中的链轮,具有许多附加的便利性和功能(几乎没有理由不使用它),那么现在这是放置它们的正确位置。您甚至可以将许多 jQuery 插件作为 gem 包含在内,并且资产管道将从 gem 中找到资产(例如,参见 masonry-rails gem)。一个新的发展是谈论用 Twitter 的“凉亭”取代那些资产库宝石。【参考方案2】:

通常的做法是下载您想使用的插件的缩小版本并将其保存在public/javascripts 目录中。

rails install 用于 Rails 插件,而不是 jQuery 插件。

【讨论】:

非常酷。您的两个回答都帮助我将我的发现放到了更广泛的背景中。【参考方案3】:

如果您坚持使用 rails install,您可以编写一个 rake 或 thor 任务来为您复制文件。

您也可以尝试在 public/javascripts 目录和下载目录之间建立符号链接,以便样式表标签可以访问它。

【讨论】:

以上是关于在 Rails 3 中使用 jQuery 插件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 jquery 插件添加到 rails 3.1

如何在 Rails 中使用 JQuery Cropper 插件?

在使用 rails 的动态加载视图中使用 Jquery 插件

Rails 6 和 Jquery 插件错误:$(...).validate 不是函数

Rails 中的动态自动完成,使用 jQuery TokenInput 插件

使用 Rails.ajax 和 jquery 可排序插件时的 ActionView::MissingTemplate