как обращаться с устройством devate authenticate_user! с вызовом ajax? - PullRequest
7 голосов
/ 28 марта 2012

У меня есть форма с: remote => true, что означает, что она будет отправлена ​​через ajax.

В контроллере у меня есть такой код:

before_filter: authenticate_user!, :only => [:create]

Для меня разрешено толькоподтвержденный пользователь создал ресурс.

Однако, когда аутентификация не удалась, devise поднимет

Completed 401 Unauthorized

, и ненавязчивый javascript не будет отображен.

Но я надеюсь, чтовыглядит следующим образом:

разработайте несколько сообщений во флэш-памяти и отредактируйте мой файл .js.erb, затем я покажу пользователям флэш-память.

Как этого добиться?

Ответы [ 2 ]

10 голосов
/ 28 марта 2012

Это довольно забавно, но измените в devise.rb http_authenticatable_on_xhr на false

config.http_authenticatable_on_xhr = false

сделал свое дело для меня ... без переопределения authenticate_user! Метод

примечание: я также добавил: js в навигационные форматы

config.navigational_formats = [:"*/*", "*/*", :html, :js]
3 голосов
/ 28 марта 2012

Вам нужно сделать свой собственный authenticate_user!действие и в этом действии вы можете иметь поведение, которое вы хотите.

def authenticate_user!
  unless current_user
    render 'my_js'
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...