【发布时间】:2013-07-30 08:12:21
【问题描述】:
我已按项目从 ree-1.8.7 升级到 1.9.2p429。
我的设计模型中有一个名为 silhouette_user_id 的属性。在视图中,偶尔在我的 ruby 代码中,调用
current_user.silhouette_user_id
返回一个不同的(和错误的)值
current_user[:silhouette_user_id]
返回正确的值。
虽然我可以搜索和替换来解决此问题,但我担心其他属性的行为方式相同。这是一个大型项目,我真的需要确定为什么会这样。
任何想法都将不胜感激。
【问题讨论】:
-
“错误”是什么意思。这是出乎意料的身份,其他身份还是什么?没有魔法,所以一定是有原因的。
-
是的,它返回一个不同的 id。不是完全随机的。来自同一会话的不同用户对象(例如 @user)的 id。哪个 id 因显示的页面而异。例如,在视图中显示 silhouette_user_id=100(例如)作为最后一个用户的用户视图导致 current_user.silhouette_user_id 检索到 100!我想如果我们关注在使用 . notation vs. hash [] notation,它可能会让我有所收获。
-
“来自同一会话的不同用户对象(例如@user)”是什么意思?
-
为会话中的不同用户记录实例化的用户实例变量(例如@user)。例如,列出 current_user 关注的用户。
-
我仍然不认为它可能与升级有关,但是如果不阅读代码,将很难调试。
标签: ruby-on-rails devise ruby-1.9.3