17 Aralık 2008, ÇARŞAMBA
Geçersiz ActiveRecord yöntemleri öznitelik
Neden bahsettiğimi bir örnek:
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
Bu iş gibi görünüyor, ama sadece ActiveRecord::Base docs geçersiz öznitelik yöntemleri ile ilgili bölümü okudum ve read_attribute
write_attribute
yöntemleri kullanarak önerir. Bir örnekte yukarıda ne yaptığımı sorun olmalı diye düşündüm; aksi halde, neden bu yöntemleri korusun ki "yol öznitelik yöntemleri geçersiz kılmak için"? Ayrıca çok çirkin bir deyim zorluyorlar, iyi bir nedeni olmalı
Asıl sorum şu: bu örnek ile yanlış bir şey var mı?
CEVAP
18 Aralık 2008, PERŞEMBE
Gareth yorum yankılanan... kod yazılı olarak çalışmaz. Bu şekilde yazılmış olmalıdır:
def name=(name)
write_attribute(:name, name.capitalize)
end
def name
read_attribute(:name).downcase # No test for nil?
end
Bunu Paylaş:
Neden Java equals ve hashCode yöntemle...
Geçersiz kılma yöntemleri kategoriler ...
Geçersiz kimlik ActiveRecord oluşturun...
ASP.NET MVC 3: Geçersiz "adı"...
C# geçersiz yöntemleri isteğe bağlı pa...