Ruby on rails Omniauth自定义轨道路线
我如何绘制这个动作Ruby on rails Omniauth自定义轨道路线,ruby-on-rails,ruby,routes,omniauth,Ruby On Rails,Ruby,Routes,Omniauth,我如何绘制这个动作 match '/auth/:provider/callback', to: 'sessions#create' 它通过 <b><%= link_to "Sign in with Facebook", "/auth/facebook", id: "sign_in" %></b> 到类似于login_path的路径,还是使用子URI 我曾尝试将“会话#创建”改为“登录”,但由于没有与会话#创建匹配的路由,因此出现了错误。提前谢谢 我想你
match '/auth/:provider/callback', to: 'sessions#create'
它通过
<b><%= link_to "Sign in with Facebook", "/auth/facebook", id: "sign_in" %></b>
到类似于login_path的路径,还是使用子URI
我曾尝试将“会话#创建”改为“登录”,但由于没有与会话#创建匹配的路由,因此出现了错误。提前谢谢 我想你有点糊涂了 您提到的这条路径是在OmniAuth与第三方服务(如Facebook)通信后,用户返回的回调。因此,使用
:as
选项命名此路线没有意义(尽管您可以)
你想要编辑的(如果我理解你的话)是用户登录时点击的URL,所以它看起来不像,但看起来像
它只是一个静态url(/auth/facebook),因此您可以像这样重定向它:
match”/login“=>重定向(“/auth/github”)
如果用户可见的URL与您无关,但您只想在视图中简化它,如:
您可以在助手中定义此方法(例如ApplicationHelper.rb):
尽管我不认为这样做有什么特别的原因。
匹配'/auth/:provider/callback'=>'会话#创建'
如果您希望
/auth/twitter(:provider)/callback
在您的sessioncontroller
=>create
action中结束,则上述路由代码将帮助您。我的应用程序已部署到www.domain.com/rails\u应用程序,该应用程序是domainHi Agis的子URI,很抱歉回复太晚,带有重定向的匹配项“/登录”似乎很完美。我的问题是,我的应用程序正在访问domain.com/auth/facebook,而不是domain.com/app/auth/facebook。我不介意用户从这个角度看到了什么,但我试图对其进行硬编码,以便路径在不同环境中保持一致。谢谢
def login_link
"/auth/facebook"
end