我如何映射此动作
match '/auth/:provider/callback', to: 'sessions#create'
通过
调用<b><%= link_to "Sign in with Facebook", "/auth/facebook", id: "sign_in" %></b>
到login_path之类的路径或使用subURI?
我试过:“sessions #create”,如:“login”但是这个错误输出没有路由匹配的会话#create。提前谢谢!
答案 0 :(得分:1)
我相信你有点困惑。
您所谈论的这条路线是用户在 OmniAuth与第三方服务(例如Facebook)通信后返回的回调。因此,使用:as
选项命名此路线毫无意义(尽管你可以)。
您要编辑的内容(如果我了解您)是用户点击登录的网址,因此它看起来不像http://example.com/auth/facebook,但看起来像http://example.com/login。
这只是一个静态网址(/ auth / facebook)所以你可以像这样重定向它:
match "/login" => redirect("/auth/github")
如果用户可见的网址与您无关,但您只想在视图中对其进行简化,例如:
<b><%= link_to "Sign in with Facebook", sign_in, id: "sign_in" %></b>
您可以在帮助器中定义此方法(例如ApplicationHelper.rb):
def login_link
"/auth/facebook"
end
虽然我没有看到任何特别的理由这样做。
答案 1 :(得分:1)
match '/auth/:provider/callback' => 'sessions#create'
如果您希望/auth/twitter(:provider)/callback
=&gt;中的SessionsController
结束,上述路由代码会对您有所帮助create
行动