Bunu yapmak için tablo sütunlarınızı yeniden adlandırmanız gerekmez. Çok temiz bir düzeltme var:
class User < ActiveRecord::Base
HUMAN_ATTRIBUTE_NAMES = {
:email => 'Email address',
:first_name => 'First name'
}
class << self
def human_attribute_name attribute_name
HUMAN_ATTRIBUTE_NAMES[attribute_name.to_sym] || super
end
end
end
Yaptığımız şey biz isimlerini özelleştirmek isteyen niteliklerin bir karma oluşturmak olduğunu. Bunların hepsini listelemek zorunda değilsiniz, çünkü birçok özellik isimleri kutudan istediğiniz gibi çalışacaktır. Daha sonra, ismimizin ilk olarak adını bulmaya çalışmak için ActiveRecord'un human_attribute_name yöntemini geçersiz kılıyoruz.
Bu gerçekten harika iki şey: Artık formlarınızda özel etiketler belirtmeniz gerekmiyor ve hata iletileriniz de otomatik olarak yeni adlara sahip olacak! istediğiniz yere bir bonus olarak, artık arayarak, bu isimleri kullanabilirsiniz:
<%= User.human_attribute_name(:email) %>
Bu adlandırma için daha birleşik yaklaşımı oluşturur. Gelecek hafta "e-postayı" "e-posta" olarak değiştirmek isterseniz, bunu yalnızca bir yerde yapmanız gerekir.
Umarım bu yardımcı olur! GJB yorumlarınızı Genişleyen
Anlaştık, bu çok daha iyi bir çözüm. – gjb