我在rails上使用ruby,在开始rails之前,我学习了一些ruby,我知道:这些符号在我们的应用程序中是唯一的
但是在学习rails时,我在使用rails模型时遇到了有线符号symbol:
,因为我已经将rails模型创建为
def up
create_table :users do |t|
t.string "email", :limit =>50, :null =>false
t.column "password", :string, :limit =>30, :null => false
#data types,binary, boolean, data, decima, float, integer, text, time
#these are the differentdata types
#we can also have options
#:default
#:precision for decimal
t.timestamps null: false
end
end
我很困惑上面代码中定义的:null
和null:
,我知道:null
是符号,null:
是什么?
它们都是在Ruby中的Hash中定义键值对的语法。
# Older Hash syntax; before Ruby 1.9 e.g. { :key => value }
:limit => 50
:null => false
和:
# Latest Hash syntax; Ruby 1.9 and higher versions e.g. { key: value }
null: false
limit: 50
在这两种情况下,null
都是一个符号。
请参阅这篇关于Ruby1.9和新的哈希语法
symbol: true
与:symbol => true
完全相同。symbol:
只是ruby 1.9及更高版本中的一个新语法。
在ruby 1.8.7及更低版本中,仅支持:symbol => true
。而在ruby 1.9+中,这两个都是受支持的。