remove field name from object validation message
In rails 3.2.6, you can set this in a locale file (e.g., config/locales/en.yml):
en: errors: format: "%{message}"
Otherwise, the default format is "%{attribute} %{message}".
One way to have complete control over the messages is to use a custom validate
block in the model. e.g. to check that a field is not blank it would be like this:
class MyModel < ActiveRecord::Base validate do |model| model.errors.add_to_base("My Custom message") if user.field.blank? endend
add_to_base
is intended for adding messages that aren't related to a particular individual field (e.g. if a combination of multiple fields is illegal). This means that the CSS to highlight your invalid field won't get added. You can work arround this by also adding a nil message to the errors for your field e.g.
model.errors.add(:field, nil)
Alternatively, check out custom-err-message plugin - this plugin gives you the option to not have your custom validation error message prefixed with the attribute name.
Update:
add_to_base
is deprecated since Rails 3. The following can be used instead:model_instance.errors.add(:base, "Msg")
Ref: https://apidock.com/rails/ActiveRecord/Errors/add_to_base