在我的基督教青年会里我有这个:


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"

但你当然失去了很多好处。

10-08 04:20