需要解释一些Ruby语法

Rn2*_*2dy 1 ruby symbols

我是ruby on rails的新手,任何人都可以解释符号':'的含义是什么,'validates'和'create_table'是什么?这么多困惑......

class Post < ActiveRecord::Base
   validates :name, :presence => true
   validates :title, :presence => true, :length => {:minimum => 5}
end

class CreatePosts < ActiveRecord::Migration
   def change
     create_table :posts do |t|
       t.string :name
       t.string :title
       t.text :content
       t.timestamps
     end
    end
 end
Run Code Online (Sandbox Code Playgroud)

mae*_*ics 6

  1. 冒号字符(:)是Ruby"符号"的语法文字的开头:

    :abc.class # => Symbol
    "abc".to_sym # => :abc

    符号就像字符串,但它们是"实习",这意味着Ruby解释器在内存中只有一个副本,尽管存在多个可能的引用(而在内存中可能同时存在许多等效的字符串).

  2. validates上面示例中的' '标记是一个类方法(在"Post类"的类层次结构中),使用符号参数(:name)和具有单个键/值对的哈希参数调用:presence => true.

  3. 在" create_table"标记是一个正被称为具有单个参数(符号"方法:posts")和被赋予一个,其接受一个参数'T’( do |t| ... end).