当用户尝试使用已存在的名称创建记录时,我想显示如下错误消息:
name "some name"已被占用
我一直在努力做:
validates_uniqueness_of :name, :message => "#{name} has already been taken"
但这会输出表名而不是 name 属性的值
最佳答案
2 件事:
- 验证消息使用 Rails I18n style interpolation ,即
%{value}
- 关键是
value
而不是name
,因为在国际化的背景下,您并不真正关心模型的其余部分。
所以你的代码应该是:
validates_uniqueness_of :name, :message => '%{value} has already been taken'
关于ruby-on-rails - 如何自定义 rails activerecord 验证错误消息以显示属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6073303/