我可以命名Omniauth身份验证路由吗?

时间:2011-08-16 00:48:14

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 omniauth

我已将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 个答案:

答案 0 :(得分:3)

通常你会这样做:在routes.rb文件中:

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

但在这种情况下,您发送到的网址实际上并不是您的应用程序的URL部分 - 而是Facebook的oauth网址。因此,您无法为其创建路线。

你能做的唯一事情 - 比如上面指出的评论者 - 就是在你的一个帮助文件中创建一个帮助方法 - 比如app / helpers / application_helper.rb

def facebook_login_path
  "/auth/facebook"
end