本物のSinatraアプリでHTML部分を送受信するための包括的な設定については、my answer to your other recent questionを参照してください。
Sinatraは優れた軽量フレームワークであるため、独自のワークフローを作成し、パーシャルを実装し、そのような呼び出しを処理するためのコードを作成するのは無料です(強制的に)。私の明示的なroute-per-partialではなく、渡されたURLまたはparamに基づいて正しいデータを検索する単一のregexベースのルートを定義することもできます。
一般に、Sinatraがパスに応答するようにするには、ルートを追加する必要があります。だから、:
get "/new_game" do
# This block should return a string, either directly,
# by calling haml(:foo), erb(:foo), or such to render a template,
# or perhaps by calling ...to_json on some object.
end
あなたはレイアウトなし部分を返すようにしたいとビューを使用している場合は、ヘルパーのオプションとしてlayout:false
を渡すようにしてください。
get "/new_game" do
# Will render views/new_game.erb to a string
erb :new_game, :layout => false
end
あなたはJSONレスポンスを返すようにしたい場合は、適切なヘッダデータを設定する必要があります:たとえば
get "/new_game" do
content_type :json
{ :foo => "bar" }.to_json
end
あなたが本当にあなたのハンドラから生のJavaScriptコードを返した後、これを実行したい場合...さて、ここであなたはJSを返す方法は次のとおりです。
get "/new_game" do
content_type 'text/javascript'
# Turns views/new_game.erb into a string
erb :new_game, :layout => false
end
それはあなた次第ですがJSと*身震い* eval()
それを受信します。