在Rails中更改错误字段名称

ste*_*715 27 ruby ruby-on-rails

我想知道是否有办法更改字段名称以确定与之关联的验证错误.例如,如果我fname在没有任何数据的情况下提交名字(实际上在表格中),它就会大喊大叫Fname can't be blank.

是否可以将其更改为First Name can't be blank

Mik*_*wis 71

现在的一般做法是像这样编辑你的当地人:

# config/locales/en.yml
en:
  activerecord:
    attributes:
      user:
        fname: "First Name"
Run Code Online (Sandbox Code Playgroud)

您的错误消息现在会说"名字不能......"

为了完整起见,您还有另一种选择.这是将以下内容添加到您的用户模型:

class User < ActiveRecord::Base

  HUMANIZED_ATTRIBUTES = {
    :fname => "First Name"
  }

  def self.human_attribute_name(attr, options = {}) # 'options' wasn't available in Rails 3, and prior versions.
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
  end

end
Run Code Online (Sandbox Code Playgroud)

  • 在Rails 4中,我不得不在`self.human_attribute_name(attr)`方法调用中添加第二个参数.所以它变成了'self.human_attribute_name(attr,options = {})` (13认同)