Попытка получить значение из таблицы соединения и ассоциации DataMapper

У меня есть 3 класса - Mix, MixClip и Clip.

class Mix

  include DataMapper::Resource

  property :id, Serial
  # <removed other code for brevity>

  has n, :mix_clips
  has n, :clips, :through => :mix_clips

end

class MixClip
  include DataMapper::Resource

  property :id, Serial
  property :order, Integer      

  belongs_to :mix
  belongs_to :clip
end

class Clip
  include DataMapper::Resource

  property :id, Serial
  property :title,            String    
  property :description,      Text

  has n, :mix_clips
  has n, :mixes, :through => :mix_clips
end

MixClip присоединяется к таблицам Mix / Clip и включает дополнительное свойство для описания клипа (порядка). Я хотел бы знать, если это? s возможно иметь объект клипа и иметь возможность ссылаться на текущий клип в контексте, в который он был загружен.

Допустим, я загружаю Mix и Clip следующим образом:

mix = Mix.first
clip = mix.clips.first

Есть ли способ получить MixClip что связано с этим конкретным клипом?

clip.mix_clip.order

Он был загружен через соединение между таблицами, поэтому я думаю, что есть способ сделать это.

Я знаю, что могу просто получить весь микс-> микс-> клипы-> и развернуть, но мне было интересно, смогу ли я вернуться на уровни назад ... это было бы проще.

Для тех, кому интересно, я пытаюсь использовать это, потому что dm-serializer не имеет полной поддержки вложенных ассоциаций при возврате json / xml, и я хотел бы просто определить метод, который возвращает данные.

Спасибо.

1
задан Tung C 5 October 2010 в 03:46
поделиться