Использование помощников по проверке Rails: сообщение, но оно нужно без указания имени столбца в сообщении - PullRequest
21 голосов
/ 27 марта 2009

Использование помощников проверки Rails-

validates_xxx_of :the_column, :message => "my message"

сгенерирует сообщение проверки:

the_column мое сообщение

Есть ли способ отключить включение имени столбца? (заменить ххх любым вспомогательным методом проверки)

Ответы [ 12 ]

0 голосов
/ 06 февраля 2011
0 голосов
/ 28 декабря 2010

У меня тоже была такая же проблема с RoR 3.0.3. Я не смог найти способ отобразить сообщения проверки без названия атрибутов. Код, который выложил Свардс ранее, не работал для меня, но это было хорошее начало.

Я поместил следующий код в файл RB в папках config / initializers:

ActiveModel::Errors.class_eval do
  # Remove complicated logic
  def full_messages
    full_messages = []

    each do |attribute, messages|
      messages = Array.wrap(messages)
      next if messages.empty?

      if attribute == :base
        messages.each {|m| full_messages << m }
      else
        attr_name = attribute.to_s.gsub('.', '_').humanize
        attr_name = @base.class.human_attribute_name(
          attribute,
          :default => attr_name
        )

        options = { :default => "%{message}", :attribute => attr_name }

        messages.each do |m|
          full_messages << I18n.t(:"errors.format", options.merge(:message => m))
        end
      end
    end
    full_messages      
  end 
end 

При этом удаляются имена атрибутов из всех сообщений, что я и хотел сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...