Мой контроллер отображает обычные html, mobile_fu и javascript следующим образом:
respond_to do |format|
format.html {
render :action => "full", :layout => "application" and return
}
format.mobile {
render :action => "full", :layout => "application" and return
}
format.js {
render :partial => "content", :layout => false and return
}
end
Обычный HTML-рендеринг в порядке, использование AJAX из html-версии сайта работает нормально, но использование AJAX в мобильном браузере, похоже, всегда отображает блок format.mobile. Я использую jQuery при привязке его к событию нажатия кнопки, и мое тестирование на iPhone всегда заканчивается рендерингом блока format.mobile, приведенного выше.
$.ajax({
beforeSend : function(request) { request.setRequestHeader("Accept", "text/javascript"); },
success : function(response) {
$("#content").append(response);
},
type : 'GET',
url : url, //set somewhere else
data : data //set somewhere else
});
Разве jQuery не улавливает событие нажатия (причудливость iPhone?), Или mobile_fu берет на себя ответственность и немного властен здесь? Кто-нибудь уже занимался этим или видел, что мне не хватает?