【问题标题】:accessing guest_user id in controllers在控制器中访问 guest_user id
【发布时间】:2011-12-12 10:26:59
【问题描述】:

我正在使用此处链接中详述的指南向我的应用程序添加访客用户功能:https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user

我已按照这些步骤操作,现在正尝试在我的一个控制器中访问来宾。由于这个控制器继承自ApplicationController,我的想法是我应该能够像这样访问guest_user 方法

@user = guest_user

我这样做是为了在我的视图中显示来宾用户的 ID。我在上面代码所在的控制器方法中做了skip_before_filter步骤。

当我尝试运行它时,我收到以下错误:undefined method '[]' for false:FalseClass。我一直试图找出问题所在,但没有成功。

我尝试注释掉

u.save(false)

错误变成了:Couldn't find User without an ID 和伴随的ActiveRecord::RecordNotFound in [controller]。所以我相信这意味着问题出现在session[:guest_user_id]?提前致谢。

我正在使用 rails 3.1.1、formtastic 2.0.2 和 devise 1.5.1

【问题讨论】:

  • 回溯说什么?哪一行代码导致了问题?
  • @andrewpthorp 它显示 u.save(false) 导致问题

标签: ruby-on-rails devise


【解决方案1】:

好的,所以我解决了我自己的问题,显然你必须改变

u.save(false)

进入

u.save(:validate => false)

我不确定为什么会出现这种情况,我上面链接的如何指导没有这个,所以我会更深入地挖掘一下,看看我是否能找到我需要这个的原因。

更新:u.save(false) 是过时的版本,在 rails 3 中使用 u.save(:validate => false)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2023-03-10
    相关资源
    最近更新 更多