2010-11-24 198 views
0

我是新来的红宝石。所以,我对下面的代码行困惑:红宝石语法问题

class CreateProducts < ActiveRecord::Migration 
    def self.up 
    create_table :products do |t| 
     t.string :title 
     t.text :description 
     t.string :image_url 
     t.decimal :price, :precision => 8, :scale => 2 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :products 
    end 

end 

行的人让我最困惑的是:

t.string :title 

我只是不明白。那么,为了理解这一行代码,你们中的任何一个人可以给我一些提示,指出我需要阅读哪些ruby语法部分?提前致谢。

回答

3

这只是一般的Ruby语法的消息。

t.string :title 

装置

  1. 解除引用块局部变量t
  2. 发送消息:stringt引用的对象,并通过文字符号:title作为唯一的参数
1

我在这里猜了一点,但作为探索

的基础:标题是Ruby的“符号” - 基本上是一个黑客提供更高效率的字符串常量一样 - 所以t.string :标题有点像调用t.string("title")更受欢迎的面向对象语言,并且由于您似乎正在为数​​据库声明一个记录结构,所以我会说这就是有效地添加了一个名为“string”的字段的字段。

+0

()方法调用与对象方向有什么关系? – 2010-11-24 14:38:17

0

到充分了解该文件,您需要了解类,继承,模块,方法calli ng,块和符号。