如何在Rails 3.1资产管道中正确使用jQuery?

Cla*_*lay 16 jquery ruby-on-rails ruby-on-rails-3.1 asset-pipeline

我正在开发一个爱好应用程序并使用一些jQuery.结果很好,但我是一个jQuery noob,我认为我可以对代码结构做一些重大改进.暂且不考虑Coffescript,我一直想知道的一件事是如何.js在资产管道中正确使用特定于模型的文件.

例如,在使用我的用户模型时,我可能会在文档准备好时运行一些我想要运行的代码.假设我把它放在Rails 3.1生成$(document).ready(function() {...});users.js文件中.

第二天,我正在使用Pet模型,我想要在文档准备好的情况下运行代码.我把它放在Rails准备$(document).ready(function() {...});pets.js文件的另一个内部.

这是我的问题出现的地方:

  1. 应用程序运行时如何编译?
  2. 我用上面的例子实例化了两个jQuery实例吗?
  3. 我应该只$(document).ready(function() {...});在应用程序中使用一次,还是Rails将我的代码编译成单个调用?
  4. 什么属于特定于模型的.js文件?
  5. 它在开发和生产模式中的执行方式是否存在差异?

nat*_*vda 12

1)编译:Rails资产管道只是将所有javascript文件合并到一个大文件中.

2)jquery只加载一次,你有多个$(document).ready功能,但这不是问题

3)Rails对调用没有任何作用,jQuery可以安全地处理每页的更多块.

4)您将其称为特定于模型.js,我宁愿将其称为特定于控制器.您将功能组合在一起.将它们联系在一起的东西是控制器还是模型真的无关紧要.我们将js拆分为单独的文件,以使其更易于管理.

5)在开发过程中,资产是根据每个请求编译的,在生产中它只进行一次.同样在生产中,它可以缩小和压缩.

希望这可以帮助.