spec/support/errors_on.rb
# Extension to enhance `to have` on AR Model instances.  Calls
# model.valid? in order to prepare the object's errors object. Accepts
# a :context option to specify the validation context.
#
# You can also use this to specify the content of the error messages.
#
# @example
#
#     expect(model).to have(:no).errors_on(:attribute)
#     expect(model).to have(1).error_on(:attribute)
#     expect(model).to have(n).errors_on(:attribute)
#     expect(model).to have(n).errors_on(:attribute, :context => :create)
#
#     expect(model.errors_on(:attribute)).to include("can't be blank")
Extension to enhance `to have` on AR Model instances.

You can also use this to specify the content of the error messages.
Extension to enhance ` to have ` on AR Model instances . You can also use this to specify the content of the error messages .
def errors_on(attribute, options = {})
    valid_args = [options[:context]].compact
    self.valid?(*valid_args)
    [self.errors[attribute]].flatten.compact
  end
def errors_on ( attribute , options = { } ) valid_args = [ options [ :context ] ] . compact self . valid? ( * valid_args ) [ self . errors [ attribute ] ] . flatten . compact end
Extension to enhance `to have` on AR Model instances.
Extension to enhance ` to have ` on AR Model instances .
attribute
<not_specific>
options
<not_specific>
example
expect(model).to have(:no).errors_on(:attribute) expect(model).to have(1).error_on(:attribute) expect(model).to have(n).errors_on(:attribute) expect(model).to have(n).errors_on(:attribute, :context => :create) expect(model.errors_on(:attribute)).to include("can't be blank")
expect ( model ) . to have ( : no ) . errors_on ( : attribute ) expect ( model ) . to have ( 1 ) . error_on ( : attribute ) expect ( model ) . to have ( n ) . errors_on ( : attribute ) expect ( model ) . to have ( n ) . errors_on ( : attribute : context = > : create ) expect ( model . errors_on ( : attribute )) . to include ( " can ' t be blank " )