我是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被调用。任何人都可以知道如何实现上述目标。
答案 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 %>;
...
确保它是一个字符串,你在它周围加上引号。那应该是它。