См. мой ответ на другой ваш недавний вопрос , чтобы получить исчерпывающую информацию о настройке отправки и получения частичных HTML-кодов в производственном приложении Sinatra.
Поскольку Sinatra - это удобная и легкая среда, вы можете(вынужден?) придумать свой собственный рабочий процесс и код для реализации частичных функций и обработки таких вызовов.Вместо моего явного маршрута на частичный, вы можете выбрать один маршрут на основе регулярных выражений, который ищет правильные данные на основе переданного URL или параметра.
В общем, если вы хотите, чтобы Синатра отвечалк пути, вам нужно добавить маршрут.Итак:
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()
это.