使用 omniauth 和自定义用户模型的路由错误

routing error using omniauth and custom user model

我有一个自定义 User 模型并通过 omniauth-facebookomniauth-vkontakte 进行身份验证。给Post模型留言,给Book模型评论需要鉴权。所以我定义了一个 sessions_controller.rb:

def create
    user = User.from_omniauth(request.env['omniauth.auth'])
    cookies[:user_id] = user.id
    redirect_to root_path
end

并且在 BookPost 模型的 show.html.erb 中,我有以下内容:

<div>
    <p>Only signed in users can leave comments/reviews. 
    Please sign in via <%= link_to 'Facebook', 'auth/facebook' %> or
    <%= link_to 'VK', 'auth/vkontakte' %> </p>
</div> 

routes.rb 我有这个:

get 'auth/:provider/callback', to: 'sessions#create'

控制台returns出现如下错误:ActionController::RoutingError (No route matches [GET] "/books/auth/facebook")

这个错误是最愚蠢的:我应该写 <%= link_to ... '/auth/:strategy',所以我错过了第一个斜杠!