Ruby on rails Desive with Rails 2.3.8在用户手动登录后产生反序列化错误

Ruby on rails Desive with Rails 2.3.8在用户手动登录后产生反序列化错误,ruby-on-rails,authentication,devise,deserialization,Ruby On Rails,Authentication,Devise,Deserialization,我正在使用Rails 2.3.8。我有一个设置,我想通过一个控制器动作自动登录一个用户,如下所示 def select_private reset_session private_user = User.find_by_identifier "PRIVATE" sign_in :user, private_user redirect_to a_page_that_needs_authentication_of_a_user_url end 这个测试看起来像这样,运行得很

我正在使用Rails 2.3.8。我有一个设置,我想通过一个控制器动作自动登录一个用户,如下所示

def select_private
   reset_session
   private_user = User.find_by_identifier "PRIVATE"
   sign_in :user, private_user
   redirect_to a_page_that_needs_authentication_of_a_user_url
end
这个测试看起来像这样,运行得很好

test "select the private customer" do
   get '/'
   assert_response :success
   get_via_redirect '/select/private'
   assert_response :success
   assert_equal path, '/shirt'
end
但当我在本地Mongrel服务器上尝试此操作时,我得到一个MethodNotFound错误

undefined method `find' for Symbol:Class
重定向到页面\u后,需要\u身份验证\u用户,最后几行的堆栈跟踪如下

gems/devise-1.0.11/lib/devise/rails/warden_compat.rb:23:in `deserialize'
gems/ruby-1.8.7-p302@rails2/gems/warden-1.0.3/lib/warden/session_serializer.rb:31:in `fetch'
gems/warden-1.0.3/lib/warden/proxy.rb:182:in `user'
gems/warden-1.0.3/lib/warden/proxy.rb:270:in `_perform_authentication'
gems/warden-1.0.3/lib/warden/proxy.rb:113:in `authenticate!'
gems/devise-1.0.11/lib/devise/controllers/helpers.rb:207:in `authenticate_user!'
呈现的操作调用authenticate\u用户!作为before#u过滤器,通过正常会话(新登录表单)访问时工作良好


这可能是一个bug,或者您有其他想法吗?

简单的解决方案。如果你有同样的问题,你的私人用户可能是零

private_user.nil? => true
我的测试数据包括该标识符的用户,而不是开发数据库。我已经提出提交一个带有有意义的错误消息的补丁,因为在我看来,这是一个相当误导的补丁