У меня тоже была такая же проблема с 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
При этом удаляются имена атрибутов из всех сообщений, что я и хотел сделать.