Javascript Rails-AJAX-to-controller方法
我正在尝试获取我制作的Rails表单:Javascript Rails-AJAX-to-controller方法,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我正在尝试获取我制作的Rails表单: 发布到控制器方法 运行命令 将结果保存到变量中 并在同一页上的div中显示它们 到目前为止,除了最后一步,我已经把一切都准备好了。通过一些AJAX教程,我不确定我做错了什么或现在缺少了什么 tools\u controller.rb def ping ip=参数[:ip] 工具类型=“ping” f=IO.popen(“ping-c3{ip}”) @输出=f.readlines 工具=工具。查找工具(工具类型:工具类型) 刀具增量(:刀具命中次数,按=1
div
中显示它们李>
到目前为止,除了最后一步,我已经把一切都准备好了。通过一些AJAX教程,我不确定我做错了什么或现在缺少了什么
tools\u controller.rb
def ping
ip=参数[:ip]
工具类型=“ping”
f=IO.popen(“ping-c3{ip}”)
@输出=f.readlines
工具=工具。查找工具(工具类型:工具类型)
刀具增量(:刀具命中次数,按=1)
工具保存
返回@output
结束
您仍将返回整个对象。我相信您需要显式地说出希望返回的变量,因为方法中还有其他变量。见下文
def ping
ip=参数[:ip]
工具类型=“ping”
@输出=[]
IO.popen(“ping-c3{ip}”)。每行|
@输出尝试显式返回it@Beengieput
仅用于调试目的,以确保命令实际上正在将某些内容记录到控制台。方法“ping”有多个变量。所以我相信你必须明确地返回你想要的。@Beengie像我现在这样试图返回整个东西有什么不对?不管怎样,我还是应该在输出中得到一些东西,对吗?我将添加代码,以便您了解我的意思。添加了返回,但是仍然没有显示在视图中。有没有可能AJAX是在ping过程完成之前启动的,因此显示的是一个没有任何内容的变量?或者其他(我不知道AJAX)想法。。。我的问题可能是@output
在ping
方法中,而我正在呈现index.html.erb
?不,仍然没有。我想这是因为我在工具
控制器中发布了ping
方法,但仍然在索引
视图中。你怎么认为?但是我不知道如何修复它。当你查看你的资源时,它甚至加载了js.erb吗?是的,在上面的控制台日志输出中,它在最后有渲染工具/ping.js.erb(0.1ms)
。
<p>Not AJAX: <span id='output'></span></p>
# Replaces all contents...
$('#output').html("<%= j render(:partial => 'output') %>");
# Will append the contents...
$('#output').append("<%= j render(:partial => 'output') %>");
= @output