У меня есть очень базовое приложение, которое подключается к API (http://is.gd), сокращая любой пользовательский URL. Вот текущий код, я должен сделать это (отлично работает в качестве статического запроса):Включите статический запрос в ajax, используя рубиновый камень?
# app.rb
require "sinatra"
require "open-uri"
def shorten_url(url)
open("http://is.gd/api.php?longurl=#{url}").read
rescue
nil
end
get "/" do
erb :index
end
get "/shorten?" do
if shorten_url(params[:url])
flash.now[:success] = "New URL: <strong>#{shorten_url(params[:url])}</strong>"
else
flash.now[:error] = "Woops, something went wrong when we tried to convert your URL. Please try again."
end
end
Я знаю, что это приложение Sinatra, но я бы немного обеспокоен, если пользователи с фоном Rails не могли» это понять;). Вот мой взгляд индексный файл ...
# index.erb/index.html.erb
<h4>Enter URL</h4>
<form action="/shorten" method="get">
<input type="text" name="url" placeholder="Enter URL to be shortened...">
<input type="submit" value="Shorten!">
</form>
Так что я получил все, что работа, теперь последнее, что я хочу сделать, это сделать так, чтобы страница не обновляется, когда вы отправите форму на индексная страница (AJAX). Я знаю, как это сделать в jQuery, но есть ли шанс, что это делает рубиновый камень? Если да, то как он используется?
Обратите внимание, что флэш-сообщения 'flash.now' будут отображаться в текущем запросе. В моей реальной статической демонстрации у меня есть 'flash.next', за которой следует перенаправление на мою индексную страницу, где отображаются сообщения. Я предположил, что 'flash.now' будет использоваться в запросе AJAX. –
Прочитайте учебник jquery. – 7stud
Это не может быть сделано без основного решения, написанного в Javascript? –