Ruby 带有散列键和符号的语法
Ruby syntax with hash keys and symbols
对于 Rails 表达式 dependent: :destroy
,dependent
是散列键而 destroy
只是一个符号吗?
写has_many :orders, dependent: :destroy
等同于has_many(:orders, {:dependent => :destroy})
:dependent
是键,:destroy
作为参数传递给 has_many
的散列值。
Ruby 1.9中引入的表示法只是一种快捷方式,您可以使用irb
:
查看其含义
h = { dependent: :destroy }
# => { :dependent => :destroy }
它们都是符号。不要忘记散列可以由 任何对象 键入,不一定是符号或字符串。这与大多数语言完全不同,在大多数语言中,密钥将被强制转换为一致的东西。
使用该示例,您可以看到键和值的类型是什么:
h.keys
# => [:dependent]
h.values
# => [:destroy]
这里都是符号。
对于 Rails 表达式 dependent: :destroy
,dependent
是散列键而 destroy
只是一个符号吗?
写has_many :orders, dependent: :destroy
等同于has_many(:orders, {:dependent => :destroy})
:dependent
是键,:destroy
作为参数传递给 has_many
的散列值。
Ruby 1.9中引入的表示法只是一种快捷方式,您可以使用irb
:
h = { dependent: :destroy }
# => { :dependent => :destroy }
它们都是符号。不要忘记散列可以由 任何对象 键入,不一定是符号或字符串。这与大多数语言完全不同,在大多数语言中,密钥将被强制转换为一致的东西。
使用该示例,您可以看到键和值的类型是什么:
h.keys
# => [:dependent]
h.values
# => [:destroy]
这里都是符号。