gpt4 book ai didi

ruby-on-rails - 你能解释一下这段 Ruby 代码中发生了什么吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:02:49 26 4
gpt4 key购买 nike

我现在正在努力学习 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

t 变量来自哪里?它实际上代表什么?它有点像 for(i=0;i<5;i++) 语句中的“i”吗?

另外,:entries 是在什么地方定义的? (entries 是我的 Controller 的名称,但是这个函数怎么知道的?)

最佳答案

:entries 是一个符号文字,它是一个文字值,如 7"a string"。没有什么可定义的(顺便说一句,该函数不知道您的 Controller 的名称)。

t 是您传递给 create_tables 方法的 block 的参数。你在这里写的内容大致类似于:

void anonymous_block(Table *t) {
t->string("name");
t->timestamps();
}

...

create_table("entries", &anonymous_block);

在 C++ 中。 create_table 调用您的 block 并向其传递一个参数,您将其命名为 t。我建议您买一本关于 ruby 的介绍性书籍,而不是 Rails。我推荐 David A. Black 的 Ruby For Rails

关于ruby-on-rails - 你能解释一下这段 Ruby 代码中发生了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1082675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com