ruby中的data:和data:之间有什么区别



我在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

我很困惑上面代码中定义的:nullnull:,我知道: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+中,这两个都是受支持的。

最新更新