ruby-on-railsruby-on-rails-6form-forform-with

How to change the message when a form input doesn't match the pattern parameter?


A pattern argument can be provided to a form field as described here

Example (regex from here)

<%= f.text_field :username, pattern: "([A-Za-z0-9\-\_]+)" %>

When the regex is not adhered to, a message is displayed. E.g.:

enter image description here

How can that message be customised?


Solution

  • The pattern attribute is actually a HTML spec, not a Rails thing. You can use the title attribute to give users a hint on to what format is expected.

    <%= f.text_field :username, pattern: "([A-Za-z0-9\-\_]+)",
                                title: "A username can only contain letters, numbers, hyphens and underscores" %>
    

    Find more information here: https://html.spec.whatwg.org/multipage/input.html#the-pattern-attribute