【问题标题】:Ruby Sinatra textarea displays variable string instead of variable valueRuby Sinatra textarea 显示变量字符串而不是变量值
【发布时间】:2017-10-03 05:12:05
【问题描述】:

我正在尝试使用 Sinatra 设置一个 web 应用程序,并且我目前正在使用它,用户可以在文本区域中输入 URL 列表,单击提交,然后在 URL 上运行一些代码,然后用户被重定向到第二个页面以查看结果。我想删除重定向并将结果显示在同一页面上的另一个文本区域中(甚至重新使用相同的文本区域),但到目前为止我在这个项目中没有成功。第二个文本区域不显示结果,而是只显示 并且提交的 URL 消失了。

ERB 页面

<h1>Put URLs Here</h1>
<form method="POST" action="">
<p><textarea id="urls" name="urls" rows="20" cols="60">
</textarea></p>
  <input type="submit">
</form>
<br />
<br />
<h1>Results</h1>
<p><textarea id="results" name="results" rows="20" cols="60">
  <%=res%>
</textarea></p>

app.rb

require 'sinatra'

get '/ip' do
  erb :ip
end

post '/ip' do
  res = Hash.new("")
  u = params[:urls].lines("\n")
  list = Ipcheck.new()
  res = list.check(u)
  erb :ip, :locals => {'res' => res}
end

我做错了什么?我已经搜索过,但无法找到解决此特定问题的方法。

【问题讨论】:

  • 你熟悉 AJAX 吗?似乎是您正在寻找的东西,因为您想在不刷新页面的情况下与服务器通信。阅读这方面的教程可能会很好。

标签: html ruby sinatra


【解决方案1】:

使用全局变量而不是局部变量。

<%= @res %>

@res = Hash.new("")
 u = params[:urls].lines("\n")
 list = Ipcheck.new()
 @res = list.check(u)
 erb :ip

【讨论】:

    猜你喜欢
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2014-01-07
    相关资源
    最近更新 更多