Ruby Sinatra重定向以显示参数
我正在构建一个简单的Sinatra应用程序,允许用户通过表单输入URL,一旦提交,该应用程序将在新表中打开每个URL(类似于) 我的Ruby Sinatra重定向以显示参数,ruby,sinatra,Ruby,Sinatra,我正在构建一个简单的Sinatra应用程序,允许用户通过表单输入URL,一旦提交,该应用程序将在新表中打开每个URL(类似于) 我的app.rb文件 require 'sinatra' get '/' do erb :'index.html' end post '/' do urls = params[:urls] end <h1>Enter URLs Below </h1> <form action="/" method="post">
app.rb
文件
require 'sinatra'
get '/' do
erb :'index.html'
end
post '/' do
urls = params[:urls]
end
<h1>Enter URLs Below </h1>
<form action="/" method="post">
<textarea rows="40" cols="50" id="urls" name="urls" ></textarea>
<br/>
<input type= "submit" value="Open 'em up!">
</form>
我的视图
文件
require 'sinatra'
get '/' do
erb :'index.html'
end
post '/' do
urls = params[:urls]
end
<h1>Enter URLs Below </h1>
<form action="/" method="post">
<textarea rows="40" cols="50" id="urls" name="urls" ></textarea>
<br/>
<input type= "submit" value="Open 'em up!">
</form>
在下面输入URL
我能够将URL打印到
post action
中的控制台,但不确定如何重定向回索引,并在新选项卡中打开每个URL之前显示它们(我计划使用JS) 您不必重定向回原始页面(事实上,URL没有更改,因此重定向没有意义)。而是渲染相同的模板。只需在第二个块(post'/'
)中插入erb:'index.html'
),并将URL放入类变量中,以便模板可以使用它们:
@urls=params[:urls].split
(存在拆分
,因此可以获得字符串数组,而不是一个带换行符的长字符串。)
最后,向模板添加一些逻辑,以检查是否有任何URL要显示,如果有,则将其呈现为列表:
<% if @urls && !@urls.empty? %>
<h1>URLs</h1>
<ul>
<% for @url in @urls %>
<li>
<%= @url %>
</li>
<% end %>
</ul>
<% end %>
<h1>Enter URLs Below </h1>
...etc...
网址
-
在下面输入URL
等