GeekPark/gpk_account

View on GitHub
app/models/user/signup.rb

Summary

Maintainability
A
0 mins
Test Coverage
class User::Signup < ActiveType::Record[User]
  attribute :verify_code, :string

  validates :mobile, presence: { message: 'email and mobile at least have one' },
                     on: :create, if: ->(user) { user.email.blank? }
  validates :password, presence: true
  validates :verify_code, presence: true
  validate :verify_code_correct

  def verify_code_correct
    key = "verify_code:#{email ? email : mobile}"
    verify_code_eq = verify_code == Rails.cache.read(key)
    errors.add(:base, I18n.t('errors.invalid_verify_code')) unless verify_code_eq
  end
end