Войти через Devise через jQuery Mobile - PullRequest
5 голосов
/ 26 апреля 2011

У нас есть работающее приложение, использующее Devise для аутентификации (электронная почта, пароль).

Чтобы добавить мобильный интерфейс, мы используем jQuery mobile - все работает нормально, за исключением того, что вход через Devise не будет работать.

После нажатия «login» Rails правильно обрабатывает запрос, но все, что мы получаем, - это ошибка MissingTemplate (devise / session / create).


Текущие настройки:

config.http_authenticatable_on_hxr = false

config.navigational_formats = [:"*/*", "*/*", :html, :mobile]

Мы вдохновлены Railscast # 199 (отсюда :mobile): http://railscasts.com/episodes/199-mobile-devices

Ответы [ 3 ]

7 голосов
/ 02 мая 2011

Попробуйте выполнить последний шаг в этом руководстве. Как: заставить Devise работать с другими форматами, такими как mobile, iphone и ipad (для Rails) .

Не забудьте использовать: to_mobile вместо:to_ios, так:

ActionController::Responder.class_eval do
  alias :to_mobile :to_html
end

в новом файле инициализатора в config / initializers

2 голосов
/ 30 апреля 2011

Перезаписывает работы Devise SessionsController. Я взял код контроллера из github и добавил redirect_to для мобильных устройств:

app/controllers/sessions_controller.rb

class SessionsController < Devise::SessionsController
  def create
    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
    set_flash_message(:notice, :signed_in) if is_navigational_format?
    sign_in(resource_name, resource)
    if mobile_device?
      redirect_to wherever_you_want
    else
      respond_with resource, :location => redirect_location(resource_name, resource)
    end
  end
end

А в routes.rb:

devise_for :users, :path => '/', :controllers => { :sessions => "sessions" }

Не забудьте создать app/views/sessions/ шаблоны.

0 голосов
/ 27 апреля 2011

проверить эту статью

jQuery Mobile, Rails и Devise

В своем приложении я добавил новый вид devise / session / create.mobile.erb и установил в этом представлении перенаправление JavaScript на определенной странице. Это похоже на неправильное решение, но оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...