Ruby on rails 解锁指示电子邮件

Ruby on rails 解锁指示电子邮件,ruby-on-rails,devise,unlock,Ruby On Rails,Devise,Unlock,我正在为我的用户帐户使用该设备,在那里我将获得所有确认信息、用户密码说明等; 但我有一个条件,如果用户帐户被锁定(在我的场景中状态为false),他必须通过电子邮件获得重置密码链接。此锁定过程在其他控制器中进行编码,因此我们不能使用Desive助手 我的控制器代码: def发送指令 a=[] if @answer1 a << '1' end if @answer2 a << '2' end if @answer3 a << '3' end

我正在为我的用户帐户使用该设备,在那里我将获得所有确认信息、用户密码说明等; 但我有一个条件,如果用户帐户被锁定(在我的场景中状态为false),他必须通过电子邮件获得重置密码链接。此锁定过程在其他控制器中进行编码,因此我们不能使用Desive助手

我的控制器代码:

def发送指令

a=[]

if @answer1
  a << '1'
end
if @answer2
  a <<   '2'
end
if @answer3
  a <<  '3'
end

if a.size <= 1

   SiteMailer.unlock_user(current_user).deliver

  current_user.update_attribute(:status,false)

  destroy_user_session_path(current_user)

  flash[:error]= "Your account is locked"

  redirect_to new_user_session_path

 else

  redirect_to user_dashboard_path

end
结束

结束

在mailer视图中:

你好 您在的帐户已被锁定。编辑配置文件: “我的链接(编辑用户密码url(当前用户)”


当我执行此过程时,发现“未找到任何路由”错误。我的路由是正确的。请帮助我解决此问题。

这是因为当时不存在当前用户。。您应该尝试此操作

edit_user_password_url(@user) 

如果我想使用像Deviate这样的重置密码令牌,有没有其他方法,或者我们可以在我的控制器方法中自定义?明白了。我刚刚删除了我的SiteMailer并添加了步骤:current_user.send_reset_password_instructions
edit_user_password_url(@user)