tagutils

tagutils gems - tag utilities (tag, taggings, tag list, etc.)

Usage

TBD

Real World Usage

  • worlddb gem - continent, country, region, metro, city, district etc. models
  • winedb gem - wine, winery, winemaker, vineyards, etc. models
  • beerdb gem - beer, brand, brewery, etc. models

Alternatives

create_table :tags do |t|
  t.string  :name
end

create_table :taggings do |t|
  t.references :tag
  t.references :taggable, :polymorphic => true
  t.references :tagger,   :polymorphic => true
  t.string     :context,  :limit => 128
  t.datetime   :created_at
end

(Source: db/migrate/1_acts_as_taggable_on_migration.rb)

create_table :tags do |t|
  t.string :name, :default => ''
  t.string :kind, :default => ''
end

create_table :taggings do |t|
  t.integer :tag_id

  t.string  :taggable_type, :default => ''
  t.integer :taggable_id
end

(Source: generators/is_taggable_migration/templates/migration.rb)

create_table :tags do |t|
  t.string :name
end

create_table :taggings do |t|
  t.references :tag
  t.references :taggable, :polymorphic => true
  t.references :tagger,   :polymorphic => true
  t.string     :context
  t.datetime   :created_at
end

create_table :alias_tags, :id => false do |t|
  t.integer :tag_id
  t.integer :alias_id
end

(Source: generators/rocket_tag/migration/templates/active_record/migration.rb)

create_table :tags do |t|
  t.column :name,           :string
  t.column :taggings_count, :integer, :default => 0, :null => false
end

create_table :taggings do |t|
  t.column :tag_id, :integer
  t.column :taggable_id, :integer
  t.column :taggable_type, :string
  t.column :user_id, :integer
end 

(Source: generators/acts_as_taggable_tables/templates/migration.rb)

create_table :tags do |t|
  t.column :name, :string
end

create_table :taggings do |t|
  t.column :tag_id,        :integer
  t.column :taggable_id,   :integer
  t.column :taggable_type, :string

  t.column :created_at,    :datetime
end

(Source: generators/acts_as_taggable_migration/templates/migration.rb)

License

The tagutils scripts are dedicated to the public domain. Use it as you please with no restrictions whatsoever.