Definição de nomes de atributos “humanizados”

A classe ActiveRecord::ConnectionAdapters::Column tem um método human_name que cria uma versão “humanizada” para os nomes das colunas de tabelas (atributos de um model). Porém, nem sempre o nome criado é o que desejamos. Por exemplo, se temos uma coluna num_usuarios, o método human_name retornará “Num Usuarios”, que, provavelmente, não é o que queremos. Para configurar o human_name manualmente, há duas soluções:

1 - criar um hash e redefinir o método human_attribute_name:


class Model < ActiveRecord::Base
  HUMANIZED_ATTRIBUTES = {
    num_usuarios => 'Número de usuários'
  }

  def self.human_attribute_name(attr)
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
  end
end

2 - usar o plugin human_attribute_override. Esta solução é mais simples e elegante:


class Model < ActiveRecord::Base
  attr_human_name :num_usuarios => 'Número de usuários'
end

0 Respostas para “Definição de nomes de atributos “humanizados””


  1. Não Há Comentários

Deixe um comentário