在我的基督教青年会里我有这个:
en:
errors:
format: "%{message}"
messages:
blank: "%{attribute} can't be blank"
invalid: "%{attribute} is invalid"
too_short: "%{attribute} is too short"
too_long: "%{attribute} is too long"
wrong_length: "%{attribute} is the wrong length"
taken: "%{attribute}, {value}, is already taken"
这是我目前的用户模型:
validates_presence_of :username
validates_uniqueness_of :username
validates_length_of :username, :within => 4..15
validates_format_of :username, :with => /^\w+$/i
validates_presence_of :password
validates_length_of :password, :within => 6..20
当我测试随机数据时,除了validates_unique_of返回默认值“has been taken”之外,所有的错误消息都工作得很好
提前非常感谢。
最佳答案
不是吗taken: "%{attribute}, %{value}, is already taken"
价值百分比符号?
我不知道你可以访问value
,但这是有意义的,否则就是username
。
我知道taken
是正确的键,但我仍然会尝试不使用{value}
来查看它是否有效。
最后或者临时修复,我认为您可以在模型验证中传递一条消息,如下所示应该有效:
validates_uniqueness_of :username, :mesage => "#{self.username} is already taken"
但你当然失去了很多好处。