2016-04-13 18 views
0

ile Ruby sözdizimi dependent: :destroy Rails ifadesiyle dependent hash anahtarı ve destroy yalnızca bir sembol mü? has_many :orders, dependent: :destroy yazmaKarma tuşları ve sembolleri

+0

Bu, hemen hemen aynıdır: [** =: ”value” ve 'key:“ value ”' hash notations? **] arasında bir fark var mı? (Http://stackoverflow.com/q/8675206/479863), değil mi? Oldukça yinelenen değil ama oldukça yakın. –

cevap

1

notasyonu sadece bir kısayoldur ve bunu irb kullanarak ne anlama geldiğini görebilirsiniz:

h = { dependent: :destroy } 
# => { :dependent => :destroy } 

İkisi sembolleri. Bir karenin, bir sembol ya da bir dize olmasa da, numaralı herhangi bir nesne tarafından tarafından anahtarlanabileceğini unutmayın. Bu, anahtarın tutarlı bir şeye zorlanacağı çoğu dilden tamamen farklıdır.

h.keys 
# => [:dependent] 

h.values 
# => [:destroy] 

Onlar bu durumda tüm simgedirler:

anahtarların ve değerlerin türleri ne varmış örneği açabilir.

0

has_many(:orders, {:dependent => :destroy})

:dependent aynı anahtar, has_many için bir bağımsız değişken olarak geçirilen karma :destroy değerdir. Ruby 1.9 tanıtılan