Devise custom messages when validation fails

后端 未结 4 1378
说谎
说谎 2020-12-15 13:12

I\'m using devise as authentication engine in my app. Is there any way to use custom messages when devise validation fails. Devise provides me with the following message whe

4条回答
  •  粉色の甜心
    2020-12-15 13:34

    ActiveRecord en.yml is the answer I would suggest if you want to change the Validation Message for Devise

    Here is how the en.yml should look like

    en:
      activerecord:
        errors:
          models:
            user:
              attributes:
                email:
                  blank: "Please Specify an Email id"
                  taken: "Please use a different Email id"
                  invalid: "Please Specify a valid Email id"
                password:
                  blank: "Please Specify a Password"
                  confirmation: "Password does not match"
                password_confirmation:
                  blank: "Please Specify a Password Confirmation"
                first_name:
                  blank: "Please Specify First Name"
                last_name:
                  blank: "Please Specify Last Name"
            pdf:
              attributes:
                name:
                  blank: "Please Specify name to PDF"
                  taken: "Please use different name for PDF"
                attachment:
                  blank: "Please Upload a PDF Attachment"
            data_element:
              attributes:
                name:
                  blank: "Please give Element a desired name"
                  taken: "Already Created Element with given name"
                color:
                  blank: "Please assign a color to Element"
            template:
              attributes:
                name:
                  blank: "Please Specify a Name"
                  taken: "Please use a different name"
    

    I advice you to define this way instead of customizing devise validation module

    Because if you follow the above approach, it would be possible that you would skip a validation a place or two

    for Example I the remove the above devise validation module and then substitue your own in User Model

    then all the validation would work for but you would miss the validation in Change Password

    There by resulting your to login even though the password was never supplied and never given

    Keep a loop of that too

    Cheer

    Regards

提交回复
热议问题