Valid Items

Goes through all your Rails ActiveRecord objects and check if they are all still pass your model validations. You may have added new validations to your model since creating your object, or ran update_column in your console to solve a production issue. Inspired by a RailsConf talk by Ryan Laughlin and his talk at http://www.rofreg.com/talks/railsconf2018'

Installation

ValidItem's installation is pretty standard:

$ gem install valid_items

If you'd rather install ValidItem using bundler, don't require it in your Gemfile:

gem 'valid_items', require: false

Example usage

require 'valid_items'
ValidItems.checkup
 => User id 203: {:name=>["can't be blank"]}
require 'valid_items'
ValidItems.checkup(email: '[email protected]')
 => User id 203: {:name=>["can't be blank"]}  
# and an email gets sent
require 'valid_items'
ValidItems.checkup(updated_at: 1.day.ago)
 => 'ok'
Arguments:
 email: (String)
 updated_at: (ActiveSupport::TimeWithZone)

Running in development

Eager Load is required on development, so that valid_items can query all AR models

Rails.application.eager_load!

You must have upgraded your Rails app so that all your models inherit from ApplicationRecord rather than ActiveRecord::Base.