No release in over 3 years
Low commit activity in last 3 years
To ensure Validations that continue to have issues are addressed by developers. This is done by logging the failure. When a specific failure continues to be an issue, a developer can look into the problem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

>= 3.2.6
 Project Readme

ValidationIssues¶ ↑

The Reason for this project is simple. People are paying attention to A/B tests and user conversion without having all the details.

For example, Lets say you have a form that appears to have users drop out of your signup funnel. Normally the first stab at the problem is to create an A/B test without any data.

What if you knew 90% of the people that hit the form had a validation error on the first_name field. I’m betting that you might not need an AB test. If you did add an AB test you would focus on the first_name field.

This problem actually happened on a live production app I was working on. Turns out the first_name validated white space. If a user added a space at the end of their name the validation would fail. The user would receive a “Invalid First Name” message. They would look at their name and be confused and eventually leave. The solution was as simple as sanitizing the first_name before validations. If we had this tool the problem would have never lasted for so long.

Getting started¶ ↑

add this to your gemfile

gem 'validation_issues'

run the following in the command line

bundle install
rake validation_issues_engine:install:migrations
rake db:migrate

In your application_controller.rb add the following to have permissions to see the admin section:

class ApplicationController < ActionController::Base
  protected
  def has_validation_issues_admin_privileges
    # logic you want to make this true
    # Typically this will work
    current_user && current_user.admin?
  end
end

In your model add ‘acts_as_validation_issues’

class User < ActiveRecord::Base
  # add this line
  acts_as_validation_issues
end

Now the only you need to do is this in your controller:

def create
  user = User.new(:first_name => '', :last_name => 'Good Last Name')
  if user.save
    user.log_successful_validation!('user_form')
    # do something
  else
    user.log_validation_issue!('user_form')
    # do something else(like render the form again)
  end
end

you pass the form’s name into the user.log_validation_issue! & log_successful_validation! method. This way if you have an AB test you can see the difference in the results.

Navigate to the admin at this url:

localhost:3000/validation_admin/validation_issues

Happy Coding. If you have any problems feel free to ask me directly, David Henner