Вот моя модельRails Validation Триггеры по сбросу пароля
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
has_many :events
has_many :appointments
validates :name, presence: true
validates :name, format: {with: /\A[[:alnum:]]+\z/, message: 'solo se permiten letras y/o numeros' }, if: 'name.present?'
validates :lastname, format: {with: /\A[[:alnum:]]+\z/, message: 'solo se permiten letras y/o numeros' }, if: 'lastname.present?'
validates :lastname, :presence => true
validates :document, :presence => true
validates_numericality_of :document, :on => :create, :message => "no es un numero", if: 'document.present?'
validates :cellphone, :presence => true
validates :cellphone, numericality:{ only_integer: true, message:"no es un numero"}, if: 'cellphone.present?', :on => :create
validates :cellphone, numericality:{ only_integer: true, message:"no es un numero"}, if: 'cellphone.present?', :on => :update
validates :cellphone, format: { with: /\d{11}/, message: "mal formato, deben ser 11 digitos, incluyendo codigo de area" }, if: "cellphone.present?", :on => :create
validates :cellphone, format: { with: /\d{11}/, message: "mal formato, deben ser 11 digitos, incluyendo codigo de area" }, if: "cellphone.present?", :on => :update
validates :phone, :presence => true
validates :phone, numericality:{ only_integer: true, message:"no es un numero"}, if: "phone.present?", :on => :create
validates :phone, format: { with: /\d{11}/, message: "mal formato, deben ser 11 digitos, incluyendo codigo de area" }, if: "phone.present?", :on => :create
validates_format_of :email,:with => Devise::email_regexp, :allow_blank => true
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def medic_with_spec
"#{especialidad}, #{name} #{lastname}"
end
def evento_sin
events.where(available: "1")
end
конец
, как вы можете увидеть подтверждение: телефон имеет: на => создать и: на => обновление, так что моя проблема в том, что, когда я сбрасываю свой пароль с электронной почты и нажимаю обновление с новым паролем, он показывает ошибки проверки сотового телефона, так как он имеет: on => update. Как я могу заставить это исчезнуть?
Я попытался, если: «cellphone.nil?», Он отлично работает, потому что мобильный телефон является obvioulsy пустым (для сброса пароля требуется только пароль и подтверждение пароля), но когда я перехожу к редактированию информации об учетной записи, он не проверяет значение не-нуль.
Im использованием разработки.
Я прочитал эту ссылку Validation errors are triggered when I'm trying to reset password, ее точно такая же проблема, но я понятия не имею, как реализовать то, что они сказали.
Im новый на рубине на рельсах, если some1 может помочь мне с этим, я понятия не имею, как реализовать предварительный рубин.
Лично я использую отдельные объекты формы для вещей, как это, по крайней мере, когда это просто , Раньше я использовал контекстно-зависимую проверку, но проще всего создавать крошечные DTO, и это еще больше отделяет представление от объектов домена. YMMV. –
Нет подсказки из этого, извините –