Copying validation errors from one attribute to another

Updated . Posted . Visible to the public. Repeats.

When using virtual attributes, the attached trait Show archive.org snapshot can be useful to automatically copy errors from one attribute to another.

Here is a typical use case where Paperclip creates a virtual attribute :attachment, but there are validations on both :attachment and :attachment_file_name. If the form has a file picker on :attachment, you would like to highlight it with errors from any attribute:

class Note < ActiveRecord::Base
  has_attached_file :attachment
  validates_attachment_presence :attachment
  validates_format_of :attachment_file_name, :with => /^\d+\.jpg$/
  include DoesCopyErrors[from: :attachment_file_name, to: :attachment]
end

If you'd like to remove the errors from the source attribute once they are copied to the target attribute, you can use the :move option:

include DoesCopyErors[from: :attachment_file_name, to: :attachment, move: true]
Henning Koch
Last edit
Michael Leimstädtner
Attachments
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2010-09-14 16:01)