Freak wrote:
> Hello guys
>
> I'm trying to work with a lot of through associations, but they seem to fail.
> Here's an example incl. test:
> Anyone got an idea how to fix this?
>
What helped us was to specify the class name - I forget the syntax but
you might search the docs, I could post what we used later. Also only
specify the class name on only one end of the association (again I
forget which)
> require 'rubygems'
> require 'bacon'
> require 'dm-core'
> File.unlink('model.log') rescue
> DataMapper::Logger.new('model.log', :debug)
> DataMapper.setup(:default, 'sqlite3::memory:')
> dir = File.dirname(__FILE__)
> class League
> include DataMapper::Resource
> property :id, Serial
> property :name, String
> has n, :league_membership
> has n, :player, :through => :league_membership
> end
>
> class LeagueMembership
> include DataMapper::Resource
> property :id, Serial
> belongs_to :player
> belongs_to :league
> has n, :league_event
> end
>
> class Player
> include DataMapper::Resource
> property :id, Serial
> property :name, String
> has n, :league_membership
> has n, :league, :through => :league_membership
> end
>
> class LeagueEvent
> include DataMapper::Resource
> property :id, Serial
> property :reason, Text
> belongs_to :league_membership
> belongs_to :player, :through => :league_membership
> belongs_to :league, :through => :league_membership
> end
>
> DataMapper.auto_migrate!
>
> describe 'League' do
> before do
> @league = League.create :name => "foo"
> @player = Player.create :name => "bar"
> @mem = LeagueMembership.create(:player => @player, :league => @league)
> @event = LeagueEvent.create(:reason => "win", :league_membership => @mem)
> @event.reload
> end
> it 'should query with through assoc' do
> @mem.league.should.equal @league
> @mem.player.should.equal @player
> @event.player.should.equal @player
> @event.league.should.equal @league
> end
> end
>
> >
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"DataMapper" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---