tracks/vendor/plugins/has_many_polymorphs/examples/hmph.rb

70 lines
1.4 KiB
Ruby
Raw Normal View History

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