Wrap text
Report abuse
#!/usr/bin/env ruby
require 'rubygems'
gem 'dm-core', '>=0.9.1'
require 'dm-core'
DataMapper::Logger.new(STDOUT, :debug)
DataMapper.setup(:sqlite3, 'sqlite3::memory:')
class Comment
include DataMapper::Resource
property :id, Integer, :serial => true
property :commentable_class, String
property :commentable_id, Integer
property :text, Text
auto_migrate! :sqlite3
end
class Post
include DataMapper::Resource
property :id, Integer, :serial => true
property :title, String
end
repository(:sqlite3) do |repository|
Post.has Post.n, :comments, :child_key => [ :commentable_id ], Comment.commentable_class => 'Post'
Comment.belongs_to :post, :child_key => [ :commentable_id ], Post.comments.commentable_class => 'Post'
Comment.auto_migrate!(repository.name)
Post.auto_migrate!(repository.name)
post = Post.create(:title => 'My first blog post!')
puts '=' * 80
post.comments.create(:text => 'Click here for cheap viagra')
puts '=' * 80
puts "\nFrom the parent to the child"
puts '-' * 80
post = Post.first
puts "Post: #{post.inspect}"
puts "Comment: #{post.comments.first.inspect}"
puts "\nFrom the child to the parent"
puts '-' * 80
comment = Comment.first
puts "Comment: #{comment.inspect}"
puts "Post: #{comment.post.inspect}"
end