module SmartSMS::HasSmsVerification::ClassMethods
Class methods that will be extended
Public Instance Methods
has_sms_verification(moible_column = :phone, verification_column = :verified_at, options = {})
click to toggle source
在您的Model里面声明这个方法, 以添加SMS短信验证功能
-
moible_column: mobile 绑定的字段, 用于发送短信, 默认 :phone
-
verification_column: 验证绑定的字段, 用于判断是否已验证, 默认 :verified_at
Options:
* :class_name 自定义的Message类名称. 默认是 `::SmartSMS::Message` * :messages 自定义的Message关联名称. 默认是 `:messages`.
# File lib/smart_sms/has_sms_verification.rb, line 24 def has_sms_verification(moible_column = :phone, verification_column = :verified_at, options = {}) send :include, InstanceMethods # 用于判断是否已经验证的字段, Datetime 类型, 例如 :verified_at class_attribute :sms_verification_column self.sms_verification_column = verification_column class_attribute :sms_mobile_column self.sms_mobile_column = moible_column class_attribute :verify_regexp self.verify_regexp = /(【.+】|[^a-zA-Z0-9\.\-\+_])/ # 用于抽取校验码, 如若修改过模板, 可能需要修改这个这正则 if SmartSMS.config.store_sms_in_local class_attribute :messages_association_name self.messages_association_name = options[:messages] || :messages class_attribute :message_class_name self.message_class_name = options[:class_name] || '::SmartSMS::Message' if ::ActiveRecord::VERSION::MAJOR >= 4 # Rails 4 的 `has_many` 中定义order lambda的新语法 has_many messages_association_name, -> { order('send_time ASC') }, class_name: message_class_name, as: :smsable else has_many messages_association_name, class_name: message_class_name, as: :smsable, order: 'send_time ASC' end end end