在Javascript中访问RubyOnRails变量表示变量未定义

时间:2014-06-14 04:47:02

标签: ruby-on-rails ruby

我在名为@var_ror的RubyOnRails控制器(index.rb)中创建了一个实例变量

在我的javascript文件(fetchingDataFromRoR.js.erb)中,我尝试访问此RubyOnRails变量并将其分配给javascript变量。

var var_js = '<%= @var_ror %>'

我收到错误消息,指出@var_ror未定义。

但是,如果我使用名为$var_ror的全局变量并在javascript中访问它,请执行以下操作:

var var_js = '<%= $var_ror %>' 

有效。但是,我不想要一个全局范围的变量,它也会导致其他问题。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

控制器:

respond_to do |format|
  format.js { render "fetchingDataFromRoR", :locals => {:var_ror => @var_ror} }
end

fetchingDataFromRoR.js.erb:

var var_js = <%= var_ror %>;

答案 1 :(得分:0)

你错误地混合了js和ruby。正确的语法是

var var_js = '<%= @var_ror %>'

<强>理由:

@var_ror = "some_string"

然后你的

var var_js = <%= @var_ror %> 导致var var_js = some_string,现在some_string看起来像一个没有定义的变量,因此会抛出错误