sam*_*moz 6 ruby ruby-on-rails
我正在尝试学习Ruby以及Ruby on Rails.我正在跟随Learning Rails,第1版,但我很难理解一些代码.
我通常使用C,C++或Java工作,所以Ruby对我来说是一个很大的变化.
我目前难以使用以下数据库迁移器代码块:
def self.up
create_table :entries do |t|
t.string :name
t.timestamps
end
end
Run Code Online (Sandbox Code Playgroud)
t变量来自哪里?它究竟代表什么?它有点像for(i = 0; i <5; i ++)语句中的'i'吗?
此外,在哪里:条目定义在?(条目是我的控制器的名称,但该功能如何知道?)
:entries是一个符号文字,它是一个像7或的字面值"a string".没有什么可定义的(顺便说一句,该函数不知道你的控制器的名称).
t是您传递给create_tables方法的块的参数.你在这里写的大致类似于:
void anonymous_block(Table *t) {
t->string("name");
t->timestamps();
}
...
create_table("entries", &anonymous_block);
Run Code Online (Sandbox Code Playgroud)
在C++中.create_table调用您的块并向其传递一个您已命名的参数t.我建议你得到一本关于红宝石而不是铁轨的入门书.我推荐David A. Black的Ruby For Rails.