Разработать изменение маршрута user_omniauth_callback - PullRequest
1 голос
/ 21 июня 2011

Я работаю с OmniAuth, чтобы использовать Facebook Connect в моем приложении на основе рельсов Devise.Один из маршрутов, который он создает:

user_omniauth_callback /users/auth/:action/callback(.:format) {:action=>/facebook/, :controller=>"devise/omniauth_callbacks"}

Я хотел бы изменить этот маршрут для пользовательского URL.Где было бы подходящее место для этого?

проблема по умолчанию, маршрут, который он создает, http://foo/users/auth/:action/callback.format. Я хочу иметь что-то более нестандартное, например http://foo/prefix_path/users/auth/:action/callback.format. Я попытался сделатьМой файл маршрутов выглядит следующим образом:

  scope "/mypath" do
    devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
  end

, но он все равно генерирует неправильный маршрут:

user_omniauth_callback /users/auth/:action/callback(.:format) {:action=>/facebook/, :controller=>"users/omniauth_callbacks"}

Ответы [ 2 ]

5 голосов
/ 21 июня 2011

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

Вы можете расширить контроллер устройства, например:

class MyOmniauthCallbacksController < Devise::OmniauthCallbacksController

  def facebook
     #Custom Code here
  end

end

Тогда вы можете зарегистрировать этот новый контроллер в ваших маршрутах. Rb

devise_for :users, :controllers => {:omniauth_callbacks => "my_omniauth_callbacks"}

EDIT:

devise также может использовать опцию 'path' в devise_for, чтобы изменить маршрут:

devise_for :users, :controllers => {:omniauth_callbacks => "my_omniauth_callbacks"}, :path => "path_prefix/users"
0 голосов
/ 21 июня 2011

Если вы недовольны omniauthable в самой разработке, тогда вы можете рассмотреть возможность реализации omniauth как отдельного драгоценного камня, а затем просто связать его с устройством. Чтобы изменить маршруты, вы также можете использовать: match и сопоставить эти маршруты с URL-адресом omniauth_callbacks. Не понял, почему вы хотите

Я бы хотел изменить этот маршрут для пользовательского URL.

Опишите, что вы хотите сделать отличным от того, что доступно.

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