Rails 3是否缺少错误翻译?

时间:2011-03-05 06:15:12

标签: ruby-on-rails ruby ruby-on-rails-3

在我的en.yml中我有这个:


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_uniqueness_of,它返回默认的'已经被采取'

非常感谢你。

1 个答案:

答案 0 :(得分:1)

不应该是

taken: "%{attribute}, %{value}, is already taken"

有百分号值吗? 我不知道您可以访问value,但这是有道理的,否则可能是username。 我看到taken是正确的密钥,但我仍然会在没有{value}的情况下尝试查看它是否有效。

在最后或临时修复时,我认为您可以在模型验证中传递消息,这样的事情应该有效:

validates_uniqueness_of     :username, :mesage => "#{self.username} is already taken"

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