Разработать выход пользователя не работает на iPhone? - PullRequest
3 голосов
/ 05 декабря 2011

Я разрабатываю представления iPhone для своего приложения Rails, я использую драгоценный камень devis для аутентификации, но когда я выхожу из системы в представлении iphone, это не работает, я проверял журнал, я нашел это:

Started GET "/users/sign_out" for 127.0.0.1 at 2011-12-05 17:06:24 +0800
Processing by UsersController#show as HTML
Parameters: {"id"=>"sign_out"}

я знаю, что GET - вот где проблема, но когда я тестирую в моих настольных браузерах, таких как Chrome и Safari, действие по выходу происходит через DELETE метод:

Started DELETE "/users/sign_out" for 127.0.0.1 at 2011-12-05 17:14:58 +0800
Processing by Devise::SessionsController#destroy as HTML

здесьмоя конфигурация маршрутов:

devise_for :users
resources :users, :only => :show

и ссылка для выхода из системы:

<%= link_to 'Logout', destroy_user_session_path, :method => :delete %>

Мне просто интересно почему ссылка для выхода из системы не работает в Mobile Safari ?

спасибо.

Ответы [ 2 ]

1 голос
/ 10 октября 2012

Вероятно, Mobile Safari не поддерживает дизайн RESTful, поэтому он не может отправить HTTP-запрос на удаление.

Попробуйте сопоставить маршрут в вашем файле rout.rb как запрос HTTP Delete

match "/logout" => "devise/sessions#destroy", :via => [:delete]

Тогда ваша ссылка для выхода должна быть такой

<%= link_to 'Sign Out', logout_path %>

Если это не работает, попробуйте переопределить Devise :: SessionsController следующим образом:

class SessionsController < Devise::SessionsController
 def log_out
  #custom log_out
 end
end

И затем добавьте маршрут в вашем файле rout.rb к этому действию как запрос HTTP получения.

Я частично проверил их и работал на меня. Дайте мне знать, если вы решите, потому что я не полностью проверил эти решения.

Если вам нужна дополнительная информация о проектах RESTful, вы должны посмотреть на это:

http://www.slideshare.net/calamitas/restful-best-practices

0 голосов
/ 28 марта 2014

Включите jquery и jquery_ujs.

<%= javascript_include_tag "jquery", "jquery_ujs" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...