【发布时间】:2013-12-24 18:04:01
【问题描述】:
环境:安装了 Ubuntu 和最新版本 Rails 和 ruby 的虚拟机
应用控制器代码:
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
使用的调试器@current_user 按预期为空,但重定向语句失败“无路由匹配”
Routes.rb 代码:
get 'auth/:provider/callback' => 'sessions#create',:as => :login
post 'logout' => 'sessions#destroy'
get 'auth/failure' => 'sessions#failure'
错误:
Error: ActionController::RoutingError (No route matches {:controller=>"sessions", :action=>"create"}):
app/controllers/application_controller.rb:8:in `set_current_user'
【问题讨论】:
标签: ruby-on-rails routes rails-routing