我正在使用此处链接中详述的指南向我的应用添加访客用户功能:https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user
我已按照这些步骤操作,现在正尝试访问其中一个控制器中的guest虚拟机。由于此控制器继承自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,并设计1.5.1
答案 0 :(得分:2)
好的,所以我解决了我自己的问题,显然你必须改变
u.save(false)
到
u.save(:validate => false)
我不确定为什么会出现这种情况,如何指导我上面链接的内容没有这个,所以我会深入挖掘一下,看看能不能找到为什么我需要这样做。
更新:u.save(false)是过时的版本,在rails 3中使用u.save(:validate => false)