-1

( http://is.gd ) APIにフックして、ユーザー指定の URL を短縮する非常に基本的なアプリがあります。これを行う必要がある現在のコードは次のとおりです(静的リクエストとして完璧に機能します):

# 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でこれを行う方法は知っていますが、これを行うRuby gemはありますか? もしそうなら、それはどのように使われますか?

4

1 に答える 1

0

JQuery ライブラリを使用できます。ものをajax化します。

このチュートリアルでは、インストール方法を説明しています http://www.w3schools.com/jquery/jquery_install.asp 次に、jQuery.get() 関数http://api.jquery.com/jQuery.getJSON/を使用してフォーム送信を ajax 化します。また、flash.now は ajax リクエストでは機能しないことに注意してください。

于 2013-09-16T09:27:45.087 に答える