Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Rails控制器呈现JS和迭代数组_Javascript_Jquery_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 如何使用Rails控制器呈现JS和迭代数组

Javascript 如何使用Rails控制器呈现JS和迭代数组,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,我在一个视图上有一个按钮,它触发一个控制器动作,该动作运行一堆东西并返回和数组字符串(每个字符串的格式都是div-ex;“Hello”)。然后我想获取这个数组,并将每个元素添加到单击按钮的页面中 控制器方法: def test @id = params[:id] if @id == 'run' @res = Preflight.run respond_to do |format| format.js {render :js

我在一个视图上有一个按钮,它触发一个控制器动作,该动作运行一堆东西并返回和数组字符串(每个字符串的格式都是div-ex;“Hello”)。然后我想获取这个数组,并将每个元素添加到单击按钮的页面中

控制器方法:

def test
    @id = params[:id]
    if @id == 'run'
        @res = Preflight.run
        respond_to do |format|
            format.js {render :js => 'run'}
        end
    else 
        render @id
    end
end
run.js.erb文件:

$('#header3').show();
$('#header2').hide();
<%= puts 'made it to the js file' %>
<% @res.each do |line| %>
    $('#results').append(<%= line %>);
<% end %>
$('#header3').show();
$('#header2').hide();
$(“#结果”).append();

我知道@res正在按预期返回数组,我无法触发JS。有什么想法吗?它不运行show/hide,所以我认为bug与我如何调用js文件有关,但我不确定我在这里做错了什么。

在调用
测试
操作时,是否在HTML中使用
远程:true
选项?

请记住,当您想要输出js字符串时,需要将其括在引号中:

$('#results').append("<%= @res.join() %>");
$(“#结果”)。追加(“”);

您能否向我们展示一下按下按钮后进入您视图的js的样子?您真的需要使用erb呈现javascript文件吗?我们可能需要浏览器javascript控制台的输出。如何在浏览器中执行此javascript?当ajax请求返回呈现的javascript代码字符串时,您正在评估它吗?不,我正在使用ajax访问它。