Pytanie odnośnie migracji

Witam robię mały projekt, który muszę potem opisać.

class Nazwa_tabeli < ActiveRecord::Migration
def self.up
create_table :nazwa_tabeli do |t|
t.string :nazwa_atrybutu
t.integer :nazwa_atrybutu
end
end

Moje pytanie brzmi co dokładnie robi zmienna lokalna t?? Za co jest odpowiedzialna??

Z góry dzięki za odpowiedz.

To jest obiekt klasy ActiveRecord::ConnectionAdapters::TableDefinition. Reprezentuje tabelę, którą budujesz w bloku (między do…end)
Wywołując na nim metodę t.column (albo skrótowe t.string, t.integer, …) tworzysz definicje kolumn tabeli (obiekty ActiveRecord::ConnectionAdapters::ColumnDefinition) i dodajesz je do tablicy @columns w tym obiekcie.

Po wyjściu z bloku t jest w create_table konwertowane do SQL i kompletne zapytanie wywoływane na aktywnej bazie danych.

Sprawdź jak nie wierzysz :slight_smile:

[code=ruby]class CreatePeople < ActiveRecord::Migration
def self.up
create_table :people do |t|
t.string :name
t.integer :age

  t.timestamps
  
  # DEBUG
  puts t.class
  puts t.to_sql
end

end

def self.down
drop_table :people
end
end[/code]