了解 Ruby On Rails 迁移文件

问题描述

我对 Ruby on Rails 比较陌生,正在阅读一些教程以了解通过 rails g 命令生成内容在这种情况下,使用用户名和电子邮件字符串生成客户模型会生成以下迁移文件

class CreateCustomers < ActiveRecord::Migration[6.1]
  def change
    create_table :customers do |t|
      t.string :username
      t.string :email

      t.timestamps
    end
  end
end

我知道 create_table 是一种方法,它具有作为参数传入的 :customer 符号。我也知道有一个块被传递到所述方法中。但是,我不明白的是块内的 t 究竟代表什么。任何帮助我理解这一点的帮助将不胜感激。

解决方法

迁移文件是对您的数据库的一组指令,用于创建一个名为“customers”的新表,其中包含两个字符串字段,即用户名和电子邮件。 't' 只代表这张表。尽管它只迭代一次,但它遵循以下一般形式:

@items.each do |item|

如果您使用的是 SQL 数据库,当您运行 rails db:migrate 时,这些指令将转换为 SQL 并在数据库中执行。 SQL 将类似于:

CREATE TABLE customers(
  id BIG_INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(256),email VARCHAR(256)
);