У меня есть окно поиска на моем сайте, которое обычно работает через AJAX.Результаты возвращаются с очень небольшой разметкой и помещаются в существующий div.
Однако, возможно, что люди могут выполнять поиск с помощью запросов обычной страницы.Например, в адресной строке Google Chrome введите stackoverflow.com
и нажмите вкладку.Google обнаружил, что у SO есть окно поиска, и Chrome теперь будет использовать его для поиска.
То же самое может случиться на нашем сайте.В этом случае я хотел бы ответить полной HTML-страницей, а не фрагментом.
Я знаю, что контроллеры Rails могут использовать respond_to
, но, насколько я понимаю, это означает, «какой тип контента сделалпользователь спрашивает - html? xml? json? "В этом случае для обоих запросов требуется HTML, только разное его количество.
Существует ли канонический способ Rails для дифференциации ответов с одинаковым типом контента? Если нет, может ли кто-нибудь предложить хорошийpattern?
Обновление
Это то, что я сейчас делаю в методе search
моего контроллера справки, который по умолчанию layout false
.(Я не изменяю это, потому что это правильно для других методов на контроллере.)
# All non-AJAX searches should get a layout
unless request.xhr?
render :search, :layout => 'search'
end