设计:加载部分而不是显示未确认成员的通知

时间:2012-10-19 07:30:40

标签: ruby-on-rails-3 devise

有没有办法为没有确认的用户登录加载视图? 默认行为是显示通知:“您必须在继续之前确认您的帐户。”

我试过

  • 否决会话#create检查current_user.confirmed_at.blank的创建方法?
  • 在after_singin_path检查current_user.confirmed_at.blank?并改为渲染视图

我的目标是渲染自定义视图而不是通知,但无法挂钩到正确的位置。谁知道怎么做到这一点? THX!

2 个答案:

答案 0 :(得分:1)

您可以简单地从设计github复制代码并放置在您的控制器/设计中。然后改变你想要的任何动作或方法。

您也可以只扩展设计会话控制器并覆盖您想要的任何操作。

class Abc < Devise::SessionsController
 # this just reopens the class.
 # Remember classes are never "closed" in ruby!
end

答案 1 :(得分:1)

我喜欢解决这个问题的ruby方法,我想在POST请求之后你的UsersController中会返回并使用devise提供的sign_in(Object)帮助程序登录。

另外,我建议使用确认的布尔值而不是时间戳。

为什么不使用ruby方式的if else语句检查值:

user.confirmed ? sign_in(user) : render :partial => 'path/partial'

希望这可以帮助你