Rails validation error messages: Displaying only one error message per field

后端 未结 13 898
情话喂你
情话喂你 2020-12-07 17:08

Rails displays all validation error messages associated with a given field. If I have three validates_XXXXX_of :email, and I leave the field blank, I get three

13条回答
  •  青春惊慌失措
    2020-12-07 17:47

    Add a method to ActiveModel::Errors class

    module ActiveModel
      class Errors
        def full_unique_messages
          unique_messages = messages.map { |attribute, list_of_messages| [attribute, list_of_messages.first] }
          unique_messages.map { |attribute_message_pair| full_message *attribute_message_pair }
        end
      end
    end
    

    Add it to a file, like lib/core_ext/rails/active_model/errors.rb. Create a file config/initializers/core_ext.rb and add a require "core_ext/rails/active_model/errors.rb" to it.

提交回复
热议问题