我有一个名为user.rb
的模型。此模型具有自定义的电子邮件验证:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable, :lockable and :timeoutable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable #,:validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
validates_presence_of :email,:message=>"El campo email is requerido"
end
问题是浏览器显示“电子邮件 El campo电子邮件是requerido”,而我想要“El campo电子邮件是requerido”(之前没有电子邮件)。
答案 0 :(得分:0)
对于比3.2.2更新的Rails,它使用国际化中定义的errors.format
来构建验证完整消息。
我相信你无法改变一个属性的行为,但如果想要为整个应用程序执行此操作,您可以在Customise ActiveModel full_messages
上关注我的回答另一种方法是直接将消息定义到记录base
,以便可以按原样打印:
validate do |user|
user.errors.add :base, 'El campo email is requerido' if user.email.blank?
end
此外,拉开请求已打开,可在属性级别https://github.com/rails/rails/pull/14260
上提供解决方案答案 1 :(得分:0)
您可以使用I18n将电子邮件的翻译更改为“El campo email”
activerecord:
attributes:
user:
email: "El campo email"