impress/app/models/swf_asset_parent.rb

12 lines
412 B
Ruby

module SwfAssetParent
def swf_assets
rels = ParentSwfAssetRelationship.arel_table
type = self.class::SwfAssetType
ids = ParentSwfAssetRelationship.
where(rels[:parent_id].eq(id).and(rels[:swf_asset_type].eq(type))).
select(rels[:swf_asset_id]).
all.map(&:swf_asset_id)
assets = SwfAsset.arel_table
SwfAsset.where(assets[:id].in(ids).and(assets[:type].eq(type)))
end
end