设计 - 有些用户可能不需要确认吗?

时间:2017-03-13 20:40:28

标签: ruby-on-rails ruby devise

如果某个用户有属性我需要什么,这不需要确认。 我已经看过几篇关于此的帖子,但我无法理解(我在Rails中有点新手)。

在我的user.rb

  def confirmation_required?
    if self.name == 'Joe'
      false
    end
  end

我尝试了但没有任何反应,总是假的。我在这段代码中看到了另一篇文章:

    def confirmation_required?
      !confirmed?
    end
#Put your conditions and job's done !

但如何从user.rb(model)访问用户数据请注意,该用户来自HTTP Post请求。

有人能帮助我吗?

由于

修改

我也可以重新编写Devise :: RegistrationsController,如下所示:

class RegistrationsController < Devise::RegistrationsController

def create
    super do
    if resource.name == 'Joe'
           resource.skip_confirmation!
           resource.save
    end
    end
  end
end

你认为这可以解决它吗? 感谢。

1 个答案:

答案 0 :(得分:1)

在您的用户模型中,您可以有条件地拨打skip_confirmation!回拨中的before_save

class User < ActiveRecord::Base
  before_save :skip_confirm  # arbitrary method name

  def skip_confirm
    if self.name == 'Joe'
      skip_confirmation!
    end
  end

end

或者,您可以在before_save

上使用某个块
class User < ActiveRecord::Base

  before_save -> do
    if self.name == 'Joe'
      skip_confirmation!
    end
  end

end