Taking It to the Next Level

In the previous section, we wrote our Mail Form plug-in with some basic features and added integration testing to ensure it works. However, we can do a lot more with Active Model. Let’s look at some examples.

Validators

Every Rails developer is familiar with Rails validations, as they are often used to exemplify the productivity that can be achieved with Rails. In the Rails source code, each validation is backed up by a validator class. Let’s see the validates_presence_of macro as an example:

rails/activemodel/lib/active_model/validations/presence.rb
​ 
​def​ validates_presence_of(*attr_names)
​ 
validates_with PresenceValidator, _merge_attributes(attr_names)
​ 
​end​

The validates_with method is ...

Get Crafting Rails 4 Applications, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.