我在我的ruby on rails应用程序中使用了devise gem。在用户注册时,如果已存在电子邮件,则会显示默认消息“已经收到电子邮件”。
我在en.yml
中更改了此消息 activerecord:
errors:
messages:
taken: "User with same email already exists. Please try with another email address."
在视图中我使用过:
<div class="notice"><%= devise_error_messages! %></div>
现在我收到的消息是
"Email User with same email already exists. Please try with another email address."
问题是在开始时附加了“电子邮件”。
有没有其他方法可以更改此默认消息?
答案 0 :(得分:8)
将邮件格式更改为
en:
errors:
format: "%{message}"
默认为"%{attribute} %{message}"
<强>更新强>
还有另一种解决方案。我知道这是一个解决方法,但是这里...... 删除现有验证,然后添加自定义验证。
validate :email_uniqueness
def email_uniqueness
self.errors.add(:base, 'User with same email already exists. Please try with another email address.') if User.where(:email => self.email).exists?
end
注意: 在进行更新时,您应该考虑现有用户