Ruby on rails 设计的例外情况是密码为零

Ruby on rails 设计的例外情况是密码为零,ruby-on-rails,devise,Ruby On Rails,Devise,我希望用户不必创建帐户就可以与我的网站进行交互,如果他们需要更多,可以稍后创建帐户(提供密码、姓名信息等) 这很好,但如果用户认为他们已经创建了一个帐户,然后尝试登录(可能使用他们一直使用的密码),Desive将通过一个异常: BCrypt::Errors::InvalidHash in Devise/sessionsController#create 因为密码是零。如果他们通过注册,然后再次注册,这是有效的 我正在使用Desive(1.2.0)、Rails(3.0.4)和Ruby 1.9.2

我希望用户不必创建帐户就可以与我的网站进行交互,如果他们需要更多,可以稍后创建帐户(提供密码、姓名信息等)

这很好,但如果用户认为他们已经创建了一个帐户,然后尝试登录(可能使用他们一直使用的密码),Desive将通过一个异常:

BCrypt::Errors::InvalidHash in Devise/sessionsController#create
因为密码是零。如果他们通过注册,然后再次注册,这是有效的

我正在使用Desive(1.2.0)、Rails(3.0.4)和Ruby 1.9.2

我的意思是,我可以创建一个虚拟密码,并有一个字段来说明用户是否已注册(或检查是否提供了其他必填字段),然后在实际注册时重置密码,但我认为在所有情况下都不应通过上述例外情况


有什么我可以做/设置来解决这个问题吗?

最简单的方法可能是使用类似于
design.friendly_token[0..20]
的方法生成一个随机的,但您也可以覆盖designe控制器和登录方法,拯救异常,只需重定向。

最简单的方法可能是使用类似于
designe.friendly_token[0..20]
的方法生成一个随机的,但您也可以覆盖designe控制器和登录方法,挽救异常,然后只需重定向