This blog is part of our Rails 6 series. Rails 6.0 was recently released.

Rails 6 added of_kind? on ActiveModel::Errors . It returns true if the ActiveModel::Errors object has provided a key and message associated with it. The default message is :invalid .

of_kind? is same as ActiveModel::Errors#added? but, it doesn’t take extra options as a parameter.

Let’s checkout how it works.

Rails 6.0.0.beta2

>> class User < ApplicationRecord >> validates :name , presence: true >> end >> user = User . new => => #<User id: nil, name: nil, password: nil, created_at: nil, updated_at: nil> >> user . valid? => false >> user . errors => #<ActiveModel::Errors:0x00007fc462a1d140 @base=#<User id: nil, name: nil, password: nil, created_at: nil, updated_at: nil>, @messages={:name=>["can't be blank"]}, @details={:name=>[{:error=>:blank}]}> >> user . errors . of_kind? ( :name ) => false >> user . errors . of_kind? ( :name , :blank ) => true >> user . errors . of_kind? ( :name , "can't be blank" ) => true >> user . errors . of_kind? ( :name , "is blank" ) => false

Here is the relevant pull request.