Ruby on rails Rails路由错误没有路由匹配?

Ruby on rails Rails路由错误没有路由匹配?,ruby-on-rails,routes,rails-routing,Ruby On Rails,Routes,Rails Routing,环境:安装了Ubuntu和最新版本的Rails和ruby的VM 应用程序控制器代码: class ApplicationController < ActionController::Base before_filter :set_current_user protected # prevents method from being invoked by a route def set_current_user debugger # we exploit the

环境:安装了Ubuntu和最新版本的Rails和ruby的VM

应用程序控制器代码:

class ApplicationController < ActionController::Base
  before_filter :set_current_user
  protected # prevents method from being invoked by a route
  def set_current_user
    debugger
    # we exploit the fact that find_by_id(nil) returns nil
    @current_user ||= Moviegoer.find_by_id(session[:user_id])
    redirect_to login_path and return unless @current_user
  end
end
错误:

Error: ActionController::RoutingError (No route matches {:controller=>"sessions", :action=>"create"}):
  app/controllers/application_controller.rb:8:in `set_current_user'

根据指定的路由,login_path需要一个参数,auth/:provider/callback中“provider”的值,而且“and return”似乎是多余的,因为后面没有要阻止其执行的代码。另外,不推荐使用按id查找-最好使用where(:id=>session[:user_id)。如果session.key?(:user_id),则首先或最好执行一个普通的旧查找(session[:user_id])
Error: ActionController::RoutingError (No route matches {:controller=>"sessions", :action=>"create"}):
  app/controllers/application_controller.rb:8:in `set_current_user'