mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-21 09:40:13 +01:00
69 lines
1.4 KiB
Ruby
69 lines
1.4 KiB
Ruby
require 'camping'
|
|
require 'has_many_polymorphs'
|
|
|
|
Camping.goes :Hmph
|
|
|
|
module Hmph::Models
|
|
class GuestsKennel < Base
|
|
belongs_to :kennel
|
|
belongs_to :guest, :polymorphic => true
|
|
end
|
|
|
|
class Dog < Base
|
|
end
|
|
|
|
class Cat < Base
|
|
end
|
|
|
|
class Bird < Base
|
|
end
|
|
|
|
class Kennel < Base
|
|
has_many_polymorphs :guests,
|
|
:from => [:dogs, :cats, :birds],
|
|
:through => :guests_kennels,
|
|
:namespace => :"hmph/models/"
|
|
end
|
|
|
|
class InitialSchema < V 1.0
|
|
def self.up
|
|
create_table :hmph_kennels do |t|
|
|
t.column :created_at, :datetime
|
|
t.column :modified_at, :datetime
|
|
t.column :name, :string, :default => 'Anonymous Kennel'
|
|
end
|
|
|
|
create_table :hmph_guests_kennels do |t|
|
|
t.column :guest_id, :integer
|
|
t.column :guest_type, :string
|
|
t.column :kennel_id, :integer
|
|
end
|
|
|
|
create_table :hmph_dogs do |t|
|
|
t.column :name, :string, :default => 'Fido'
|
|
end
|
|
|
|
create_table :hmph_cats do |t|
|
|
t.column :name, :string, :default => 'Morris'
|
|
end
|
|
|
|
create_table :hmph_birds do |t|
|
|
t.column :name, :string, :default => 'Polly'
|
|
end
|
|
end
|
|
|
|
def self.down
|
|
drop_table :hmph_kennels
|
|
drop_table :hmph_guests_kennels
|
|
drop_table :hmph_dogs
|
|
drop_table :hmph_cats
|
|
drop_table :hmph_birds
|
|
end
|
|
end
|
|
end
|
|
|
|
module Hmph::Controllers
|
|
end
|
|
|
|
module Hmph::Views
|
|
end
|