Я создаю простое приложение Sinatra, которое позволяет пользователям вводить URL-адреса через форму, и после отправки приложение откроет каждый из этих URL-адресов в новой таблице (аналогично urlopener.com)
Мой файл 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>
Я могу напечатать URL-адреса консоли в post action
, но не знаю, как выполнить перенаправление обратно на index
и отобразить каждый из URL-адресов, прежде чем открывать их в новых вкладках (что я планирую используя JS для выполнения).
1 ответ
Вам не нужно перенаправлять обратно на исходную страницу (на самом деле URL-адрес не изменился, поэтому перенаправление не имеет смысла). Вместо этого вы визуализируете тот же шаблон . Просто вставьте erb :'index.html'
также во второй блок (post '/'
) и поместите URL-адреса в переменную класса , чтобы они были доступны для шаблона:
@urls=params[:urls].split
(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...
Похожие вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].