How to validate text isn't blank in Rails

前端 未结 3 591
北荒
北荒 2020-12-15 03:32

if I do

  validates :body, :presence => true, :length => {:maximum => 30000, :message => \' is a bit long...\'}
  validates :body, :length =>         


        
相关标签:
3条回答
  • 2020-12-15 04:24

    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.

    0 讨论(0)
  • 2020-12-15 04:30

    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")
    0 讨论(0)
  • 2020-12-15 04:32

    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.

    0 讨论(0)
提交回复
热议问题