在Javascript中访问Ruby变量

时间:2013-09-13 07:50:56

标签: javascript jquery ruby-on-rails haml

我是Javascript的新手。我在haml中编写一个视图,通过使用JQuery填充下拉框并填充该框,JQuery需要Ruby变量s_id的值,如下所示:

$(document).ready(function(){
  var param = s_id  //here s_id is a ruby variable
  ...

这里s_id是一个ruby变量,它在Haml视图文件中定义,JS被调用。任何人都可以知道如何实现上述目标。

2 个答案:

答案 0 :(得分:2)

我认为没有办法直接访问变量。如果JS代码在同一页面上,您只需使用<%= s_id %>添加值即可。我没有太多使用HAML,所以你必须从这个ERB代码中调整它。

另一个解决方案,因为你在document.ready之后执行它是将值存储在隐藏字段中,然后从JS $('#your_sid_field').val()

中选择它

答案 1 :(得分:0)

你需要将其移动为部分。将其设置在一个名为app/views/whatever/_some_script.js.erb的文件中,然后像这样引用它:

render partial: 'whatever/some_script', locals: { s_id: s_id }

在javascript文件中,您将执行此操作:

$(document).ready(function(){
  var param = <%= s_id %>;
  ...

确保它是一个字符串,你在它周围加上引号。那应该是它。