Skip to content

Instantly share code, notes, and snippets.

Created June 5, 2009 04:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/124069 to your computer and use it in GitHub Desktop.
Save anonymous/124069 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'dm-core' #0.9.11
DataMapper.setup(:default, 'sqlite3::memory:')
class Location
include DataMapper::Resource
property :id, Serial
property :city, String
end
class Distance
include DataMapper::Resource
property :id, Serial
property :amount, Integer
belongs_to :origin, :class_name => "Location", :child_key => [:origin_location_id]
belongs_to :destination, :class_name => "Location", :child_key => [:destination_location_id]
end
DataMapper.auto_migrate!
Location.create(:city => "Houston")
Location.create(:city => "Chicago")
Distance.create(:amount => 1000, :origin_location_id => 1, :destination_location_id => 2)
Distance.first("origin.city" => "Houston", "destination.city" => "Chicago")
/Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/adapters/data_objects_adapter.rb:66:in `execute_reader': ambiguous column name: distances.id (Sqlite3Error)
Query: SELECT "distances"."id", "distances"."amount", "distances"."origin_location_id",
"distances"."destination_location_id" FROM "distances" INNER JOIN "locations" ON ("locations"."id" =
"distances"."destination_location_id") INNER JOIN "distances" ON ("locations"."id" =
"distances"."origin_location_id") WHERE ("locations"."city" = 'Chicago') AND ("locations"."city" = 'Houston')
ORDER BY "distances"."id" LIMIT 1
from /Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/adapters/data_objects_adapter.rb:66:in `read_one'
from /Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/adapters/data_objects_adapter.rb:173:in `with_connection'
from /Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/adapters/data_objects_adapter.rb:61:in `read_one'
from /Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/repository.rb:72:in `read_one'
from /Library/Ruby/Gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:267:in `first'
from finder.rb:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment