if I do
validates :body, :presence => true, :length => {:maximum => 30000, :message => \' is a bit long...\'}
validates :body, :length =>
presence: true
already does that according to
http://guides.rubyonrails.org/active_record_validations.html#presence
This helper validates that the specified attributes are not empty. It uses the blank? method to check if the value is either nil or a blank string, that is, a string that is either empty or consists of whitespace.
What if you try adding something like this:
validates_format_of :body, :with => /\A[[:graph:]]\Z/i
Notes:
validates_format_of
lets you validate with regex[[:graph:]]
lets you check a string for printable characters (see "Character Classes")Rails adds the handy method blank?
which checks for false, nil and empty strings as described here.
Rails also adds the handy validator allow_blank: false
.
So in your case it should be:
validates :body, presence: true, allow_blank: false
Edit (original answer above):
As stated in the answer below, allow_blank: false
is not needed as that's the default behaviour of presence: true
.