Мне пришлось внести следующие изменения, чтобы сделать эту работу:
конфиг / Инициализаторы / devise.rb
config.http_authenticatable_on_xhr = false
В противном случае JQuery Mobile отправляет запросы XHR на вход в систему, и вы получаете ошибку 401.
config.navigational_formats = [:"*/*", "*/*", :html, :mobile]
В противном случае он не распознает формат. Вы могли бы подумать, что это будет обрабатывать перенаправления, но на самом деле это не так. Вам нужно сделать еще одну вещь.
Мне повезло, поэтому я добавил его в:
конфиг / Инициализаторы / devise_hack.rb
ActionController::Responder.class_eval do
alias :to_mobile :to_html
end
Теперь это работает.
Еще одна вещь, хотя; в моем application.rb у меня есть это для mobylette, чтобы настроить мой мобильный материал:
respond_to_mobile_requests :skip_xhr_requests => false, :fall_back => :html
Между Responder.class_eval
и :fall_back => :html
можно подумать, что в этом нет необходимости. Большая часть написанного конфига кажется одинаковой и / или дублированной. Однако без всех этих настроек он просто не работает.