从javascript访问实例变量

从javascript访问实例变量,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,在我的Rails应用程序中,我需要脚本根据提供服务的控制器和操作的不同而表现出不同的行为。因此,在我的ApplicationController中,我将如下所示: before_filter :save_action_controller def save_action_controller @action = action_name @controller = controller_name end 在erb过滤的javascript文件中,我有以下内容: window.con

在我的Rails应用程序中,我需要脚本根据提供服务的控制器和操作的不同而表现出不同的行为。因此,在我的ApplicationController中,我将如下所示:

before_filter :save_action_controller  

def save_action_controller
  @action = action_name
  @controller = controller_name
end
在erb过滤的javascript文件中,我有以下内容:

window.controller = <%= @controller || 'undefined' %>;
window.action = <%= @action || 'undefined' %>;
window.controller=;
window.action=;
但在这种情况下,@controller和@action似乎都是零?但是,我可以从视图和帮助器访问它们。此外,如果我真的试图访问“不存在”的变量,我不知道如何在不引发异常的情况下进行此操作

我需要做些什么才能从javascript访问它?有首选方法吗?

这一集介绍了将数据传递到javascript的一些信息

有几种方法可以做到这一点,但一种很好的方法是使用数据属性(如railscast所示)。您可以使用html对其进行如下定义:

<h1>Products</h1>

<div id="products" data-url="<%= products_url %>">
  Loading products...
</div>
这一集有一些关于向javascript传递数据的信息

有几种方法可以做到这一点,但一种很好的方法是使用数据属性(如railscast所示)。您可以使用html对其进行如下定义:

<h1>Products</h1>

<div id="products" data-url="<%= products_url %>">
  Loading products...
</div>