Rails: Validate only on create, or on update when field is not blank

If you want to allow blank values use: allow_blank with validates.

class Topic < ActiveRecord::Base
  validates :title, length: { is: 5 }, allow_blank: true
end

If you want to validate only on create, use on with validates.

class Topic < ActiveRecord::Base
  validates :email, uniqueness: true, on: :create
end

To cover your case:

class Topic
  validates :email, presence: true, if: :should_validate?

  def should_validate?
    new_record? || email.present?
  end
end

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)