outoftime (owner)

Revisions

gist: 143160 Download_button fork
public
Public Clone URL: git://gist.github.com/143160.git
config/initializers/fix_active_record_validations_full_messages.rb
1
FixActiveRecordValidationsFullMessages.install
lib/fix_active_record_validations_full_messages.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Ensures that when we pass a :message parameter to our validations, that
# message is a sentence (and not something to be prefixed by the column
# name). Rationale: ActiveSupport::Inflector is in over its head on this
# one.
#
# So instead of:
# validates_presence_of :name, 'should not be blank'
# Use:
# validates_presence_of :name, 'Name should not be blank'
#
# If, however, you just use:
# validates_presence_of :name
#
# The behavior will remain unchanged.
module FixActiveRecordValidationsFullMessages
  def self.install
    # Instead of generating error messages in error_messages_for(), we
    # generate error messages as they are added. The messages are thus
    # suitable for presentation without helper methods.
    ActiveRecord::Errors.class_eval do
      # Remove complicated logic
      def full_messages_with_full_messages
        returning full_messages = [] do
          @errors.each_key do |attr|
            @errors[attr].each do |msg|
              full_messages << msg if msg
            end
          end
        end
      end
      alias_method_chain :full_messages, :full_messages # my little joke
    end
  end
end