Javascript 如何使用Rails控制器呈现JS和迭代数组
我在一个视图上有一个按钮,它触发一个控制器动作,该动作运行一堆东西并返回和数组字符串(每个字符串的格式都是div-ex;“Hello”)。然后我想获取这个数组,并将每个元素添加到单击按钮的页面中 控制器方法: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
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访问它。