Могу ли я назвать маршруты аутентификации Omniauth? - PullRequest
2 голосов
/ 16 августа 2011

Я добавил Omniauth в свой проект rails 3.1, и все работает нормально. Когда я посещаю hostname/auth/facebook, я попадаю на страницу, где я могу авторизовать доступ к своей учетной записи Facebook, как вы ожидаете.

Мне интересно, могу ли я назвать этот маршрут, чтобы в моих link_to помощниках я мог написать

<%= link_to 'Login with Facebook', facebook_login_path %>

вместо

<%= link_to 'Login with Facebook', '/auth/facebook' %>

Не большая вещь, которую я знаю, но мне нравится последовательность.

1 Ответ

3 голосов
/ 04 ноября 2011

Обычно вы делаете что-то вроде этого: В вашем файле rout.rb:

get "auth/facebook", :to => "controller#action", :as => "facebook_login"

Но в этом случае URL-адрес, на который вы отправляете, на самом деле не является URL-частью вашего приложения, а является URL-адресом oauth для Facebook. Поэтому вы не можете создать для него маршрут.

Единственное, что вы можете сделать - как указывалось выше, - создать вспомогательный метод в одном из ваших вспомогательных файлов - например, app / helpers / application_helper.rb

def facebook_login_path
  "/auth/facebook"
end
...