column(name, type, options = {}) public

Instantiates a new column for the table. The type parameter must be one of the following values: :primary_key, :string, :text, :integer, :float, :datetime, :timestamp, :time, :date, :binary, :boolean.

Available options are (none of these exists by default):

  • :limit: Requests a maximum column length (:string, :text, :binary or :integer columns only)
  • :default: The column’s default value. You cannot explicitely set the default value to NULL. Simply leave off this option if you want a NULL default value.
  • :null: Allows or disallows NULL values in the column. This option could have been named :null_allowed.

This method returns self.

 # Assuming def is an instance of TableDefinition
 def.column(:granted, :boolean)
   #=> granted BOOLEAN

 def.column(:picture, :binary, :limit => 2.megabytes)
   #=> picture BLOB(2097152)

 def.column(:sales_stage, :string, :limit => 20, :default => 'new', :null => false)
   #=> sales_stage VARCHAR(20) DEFAULT 'new' NOT NULL
Show source
Register or log in to add new notes.