2016-03-19 13 views
1

benim kullanıcılar modeli: [: name] Bir giriyorum gibi görünüyor <br /> [ad] çalışır

def name 
self[:name] 
end 

Ben kendini anlamakta zorluk çekiyorum bir okuyucu yöntemi yarattı raylar Hash
'daki bir anahtarla, ancak onun bir Hash olmadığını anlatabildiğim bir değerle değeri.

Ben de bu taklit ama onları ben "bu yakut ya Anlamıyorum şeyi raylar emin değilim ki işlerine uyuyamıyrom yakut sınıfları oluşturmak için çalıştık

cevap

4

ActiveRecord bir [] method besler.:

[](attr_name)

... bu tür rolleri sonra attr_name tarafından tespit özelliğinin değerini döndürür

self[:name] derken, modelinizin name özniteliğine erişmek için yalnızca yaklaşık bir yoldur.

class C 
    def [](k) 
    # do whatever you want 
    end 
end 
c = C.new 
c[:pancakes] 

ActiveRecord az ya da çok olduğu verilerle birlikte kullanılır, bir ilişkisel tarafından desteklenen bir karma:

[]

istediğiniz herhangi sınıfta kendi tanımlayabilirsiniz, Ruby diğerleri gibi bir yöntemdir veritabanı model[:attribute_name] söyleyerek oldukça doğal. Dolayısıyla, [] yönteminin varlığı.

İlgili konular