Ruby 红宝石语法问题
我对ruby不熟悉。所以我被下面几行代码弄糊涂了:Ruby 红宝石语法问题,ruby,activerecord,Ruby,Activerecord,我对ruby不熟悉。所以我被下面几行代码弄糊涂了: 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 =
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
我就是不明白。所以,你们中有谁能给我一些提示,让我知道为了理解这一行代码,我需要阅读ruby语法的哪一部分?提前感谢。您将在
另外,这是拼写语法,但对于代码,我们通常使用“语法”一词:) 您将在
另外,这是拼写语法,但对于代码,我们通常使用“语法”一词:) 我在这里猜测一下,但作为探索的基础
:title是一个Ruby“符号”-基本上是一个提供更高效的类似字符串的常量的黑客-因此t.string:title有点像在更流行的OO语言中调用
t.string(“title”)
,并且考虑到您似乎要为数据库声明一个记录结构,我想说这是在添加一个名为“title with type”的字段“字符串”。我在这里猜一点,但作为探索的基础
:title是一个Ruby“符号”-基本上是一个提供更高效的类似字符串的常量的黑客-因此t.string:title有点像在更流行的OO语言中调用t.string(“title”)
,并且考虑到您似乎要为数据库声明一个记录结构,我认为这实际上是在添加一个名为“title with type”的字段字符串“检查
此文件称为创建应用程序的后端
检查
此文件称为创建应用程序的后端
这只是普通的Ruby消息传递语法
t.string :title
意味着
t
:string
发送到t
引用的对象,并将文字符号:title
作为唯一参数传递这只是普通的Ruby消息传递语法
t.string :title
意味着
t
:string
发送到t
引用的对象,并将文字符号:title
作为唯一参数传递要完全理解该文件,您需要理解类、继承、模块、方法调用、块和符号。要完全理解该文件,您需要理解类、继承、模块、方法调用、块和符号。什么是()as方法调用与面向对象有关吗?
:某物是一个符号,而不是一个不变的字符串,因此不等同于“某物”“
。符号实际上是全局符号表上的一个索引,在比较和哈希键查找方面效率更高。@edgerunner:我忘记了Ruby特有的术语——自从我做Ruby已有几年了,但在一般的计算科学/对象级别上,我认为公平地说,它是一个不可变的字符串,您的回答似乎证实了这一点:没有?@Matt Briggs:()
单独与OO无关,但一般语法object.member-function()
与OO无关。。。像C这样的过程语言不使用这种表示法。@Tony,据我所知,该字符串是散列的,生成的整数存储在表中()作为方法调用与面向对象有什么关系?:有些东西是符号,而不是不可变的字符串,因此不等同于“某物”
。符号实际上是全局符号表上的一个索引,在比较和哈希键查找方面效率更高。@edgerunner:我忘记了Ruby特有的术语——自从我做Ruby已有几年了,但在一般的计算科学/对象级别上,我认为公平地说,它是一个不可变的字符串,您的回答似乎证实了这一点:没有?@Matt Briggs:()
单独与OO无关,但一般语法object.member-function()
与OO无关。。。像C这样的过程语言不使用这种表示法。@Tony,据我所知,字符串是散列的,得到的整数存储在表中