2014-03-18 44 views
1

林建設一個簡單的做法西納特拉的應用程序,它允許用戶通過表單中輸入網址,一旦提交的應用程序將在一個新的表(類似於urlopener.com西納特拉重定向到顯示PARAMS

打開這些網址的我app.rb文件

require 'sinatra' 

get '/' do 
    erb :'index.html' 
end 

post '/' do 
    urls = params[:urls] 
end 

View文件

<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> 

我能夠打印網址到控制檯的post action,但我不確定如何重定向到index,並在將它們打開到新選項卡(我計劃使用JS執行)之前顯示每個URL。

回答

2

您不必重定向回原始頁面(實際上,URL沒有更改,因此重定向沒有意義)。相反,您呈現相同的模板。只需在第二塊插入erb :'index.html'post '/')爲好,並把網址在類變量,讓他們將提供給模板:

@urls=params[:urls].split 

(該split是存在的,所以你得到一個。字符串數組,而不是一個長字符串換行符)

最後,添加一些邏輯到模板,以檢查是否有任何網址顯示,如果這樣他們呈現爲一個列表:

<% if @urls && [email protected]? %> 
    <h1>URLs</h1> 
    <ul> 
    <% for @url in @urls %> 
    <li> 
     <%= @url %> 
    </li> 
    <% end %> 
    </ul> 
<% end %> 

<h1>Enter URLs Below </h1> 
...etc...