【发布时间】:2010-10-05 03:46:44
【问题描述】:
我有 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 表,并包含一个额外的属性来描述剪辑(顺序)。我想知道是否有可能拥有一个剪辑对象并能够在加载它的上下文中引用当前剪辑。
假设我像这样加载一个 Mix 和一个 Clip:
mix = Mix.first
clip = mix.clips.first
有没有办法获取与该特定剪辑关联的 MixClip?
clip.mix_clip.order
它是通过表之间的连接加载的,所以我认为有办法做到这一点。
我知道我可以得到所有的 mix->mix->clips-> 并向下钻取,但我想知道我是否能够回到更高的水平......这会更简单。
对于那些想知道的人,我正在尝试使用它,因为 dm-serializer 在返回 json/xml 时不完全支持嵌套关联,我希望能够只定义一个返回数据的方法。
谢谢。
【问题讨论】:
标签: ruby-on-rails-3 datamapper