Ruby on rails 3 设计返回不正确的用户ID?

Ruby on rails 3 设计返回不正确的用户ID?,ruby-on-rails-3,activerecord,devise,Ruby On Rails 3,Activerecord,Devise,我通过Desive登录时出现如下错误 奇怪的是,Rails/Desive似乎返回了用户id“1”,即使在我的users表中没有id为“1”的用户。这似乎是随机发生的,我不知道问题出在哪里 这是最新的错误消息 ODBC::错误:S1000 9001[Microsoft][SQL Server本机客户端11.0][SQL Server]数据库“[Redact]”的日志不可用。检查事件日志中的相关错误消息。解决所有错误并重新启动数据库。:EXEC sp_executesql N'UPDATE[user

我通过Desive登录时出现如下错误

奇怪的是,Rails/Desive似乎返回了用户id“1”,即使在我的users表中没有id为“1”的用户。这似乎是随机发生的,我不知道问题出在哪里

这是最新的错误消息

ODBC::错误:S1000 9001[Microsoft][SQL Server本机客户端11.0][SQL Server]数据库“[Redact]”的日志不可用。检查事件日志中的相关错误消息。解决所有错误并重新启动数据库。:EXEC sp_executesql N'UPDATE[users]SET[last_sign_in_at]=2012-11-12T16:58:34.020,[current_sign_in_at]=2012-11-13T08:44:33.586,[sign_in_count]=69,[updated_at]=2012-11-13T08:44:33.630其中[users].[id]=1;选择@@ROWCOUNT作为AffectedRows'

以下是请求参数:

{"utf8"=>"✓",
 "authenticity_token"=>"[redacted]=",
"user"=>{"email"=>"jkramxx@xx.com",
"password"=>"[FILTERED]",
"remember_me"=>"0"},
"commit"=>"Sign in"}
数据库中实际上没有id为1的用户,服务器也没有问题。用户jkramxx@xx.com他的身份证号码是60。不久前从数据库中删除了用户id 1。我想它可能是会话cookie中的某个内容,所以我也删除了它

我在控制台中看到过类似的奇怪行为,在控制台中我可以登录,但当我在调试器中检查当前用户时,它显示该用户的id为“1”,即使我直接使用SQL Server Mgmt Studio检查数据库时,该用户的id为34,而没有id为1的用户。有时,当我重新启动调试器时,这个beahvior会消失。都是随机的

有什么建议吗


Ruby 1.9.3./Rails 3.2.8 SQL Server 10使用Ruby obdc gem

我认为我们需要更多的东西。当前的用户助手没有太大的魔力-在登录时,它根据传递的电子邮件地址查找用户,如果找到,则确认密码匹配。此时,当前用户对象存储在会话中。我会把一些日志放在不同的地方,看看当前用户从正确的日志更新到错误的日志。当前用户的调试id是{current_user.id}。当然,这不是随机的,但是如果很难找到,日志代码可以帮助你找出原因。最终解决了这个问题。我建立了另一个非常相似的测试数据库,名称也很相似,而我的obdc使用了错误的数据库作为初始数据库。在某个时刻,Rails切换到了正确的数据库,即database.yml中指示的数据库,但我认为对db的第一个查询将转到错误的db,然后它将转到live db。非常令人困惑,因为在大多数情况下,应用程序工作正常,并且与正确的数据库交互,但在启动时,它有时会看到错误的数据库。