在 Ruby on Rails 中,有什么区别
:bonus_card
和
dependent: ?
(在示例中
class TrainPassengers < ActiveRecord::Base
has_one :bonus_card, dependent: :destroy
end
)
在 Ruby on Rails 中,有什么区别
:bonus_card
和
dependent: ?
(在示例中
class TrainPassengers < ActiveRecord::Base
has_one :bonus_card, dependent: :destroy
end
)
这是 ruby 1.9 中的新语法
dependent: :destroy
这是这个的替代品
:dependent => :destroy
我认为您是 ruby 的新手,因为有经验的人对此有所了解,如果您使用脚手架然后依赖: :destroy 此代码现在默认由 rails 生成。
:dependent ,:destroy 和 :bonus_card 都是符号。阅读符号这些非常有用
在 Ruby 中,:something
是一个符号。符号是保存在内存中的引用,可以快速查找,因此它是一种很好的数据类型,可用作哈希键。Ruby 哈希通常看起来像:
{ :some_key => "some data", :other_key => 65536, :yet_another_key => :symbol_as_data }
Ruby 1.9 引入了写上面的简写符号,只要键是符号,你可以把冒号移到最后,省略粗箭头=>
{ some_key: "some data", other_key: 65536, yet_another_key: :symbol_as_data }
这仅对作为散列键传递的符号有效(也在作为方法参数传递的散列中)。用作哈希键的其他对象仍必须使用粗箭头(=>
),并且在其他地方使用的符号始终以冒号开头。