Posted almost 9 years ago. Visible to the public. Repeats.

Copying validation errors from one attribute to another

When using virtual attributes, the attached trait 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:

Copy
class Note < ActiveRecord::Base has_attached_file :attachment validates_attachment_presence :attachment validates_format_of :attachment_file_name, :with => /^\d+\.jpg$/ include DoesCopyErors[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:

Copy
include DoesCopyErors[from: :attachment_file_name, to: :attachment, move: true]

Once an application no longer requires constant development, it needs periodic maintenance for stable and secure operation. makandra offers monthly maintenance contracts that let you focus on your business while we make sure the lights stay on.

Owner of this card:

Avatar
Henning Koch
Last edit:
8 months ago
by Dominik Schöler
Attachments:
does_copy_errors.rb
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Henning Koch to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more