在 Rails 3.1 中,如何将 CoffeeScript(或 JavaScript)的执行限制为特定的控制器和动作?

How do you limit CoffeeScript (or JavaScript) execution to a particular controller and action in Rails 3.1?(在 Rails 3.1 中,如何将 CoffeeScript(或 JavaScript)的执行限制为特定的控制器和动作?)

本文介绍了在 Rails 3.1 中,如何将 CoffeeScript(或 JavaScript)的执行限制为特定的控制器和动作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

The new Rails 3.1 asset pipeline is really nice, but since all CoffeeScript (or JavaScript) files get melded down into a single file that is included in every page, it raises this question:

How do I limit the execution of my script to a particular controller or action? Is there a way within my CoffeeScript to know which controller and action was used during the request so that I can put conditional statements in my script?

Or am I approaching this the wrong way altogether?

解决方案

Trevor Burnham answers this question nicely here: How do I associate a CoffeeScript file with a view?

He says:

There are two common approaches:

  1. Make behavior conditional on the presence of a particular element. For instance, code to run a signup sheet should be prefaced with something like

    if $('#signup').length > 0

  2. Make behavior conditional on a class on the body element. You can set the body class using ERB. This is often desirable for stylesheets as well. The code would be something like

    if $('body').hasClass 'user'

And if you're interested in CoffeeScript, Trevor is working on a book that looks to be very good: http://pragprog.com/titles/tbcoffee/coffeescript

这篇关于在 Rails 3.1 中,如何将 CoffeeScript(或 JavaScript)的执行限制为特定的控制器和动作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在 Rails 3.1 中,如何将 CoffeeScript(或 JavaScript)的执行限制为特定的控制器和动作?

基础教程推荐