forked from OpenNeo/impress
fix parent-swf-asset-relationship destruction bug
After changing the database structure, we lost the feature where, once we discover new assets for an item for a given body ID, we disconnect previously connected assets. This commit reinstates that feature.
This commit is contained in:
parent
767103fb70
commit
4d314417e2
1 changed files with 6 additions and 5 deletions
|
@ -178,20 +178,21 @@ class Item < ActiveRecord::Base
|
||||||
new_swf_asset_ids = @parent_swf_asset_relationships_to_update.map(&:swf_asset_id)
|
new_swf_asset_ids = @parent_swf_asset_relationships_to_update.map(&:swf_asset_id)
|
||||||
rels = ParentSwfAssetRelationship.arel_table
|
rels = ParentSwfAssetRelationship.arel_table
|
||||||
swf_assets = SwfAsset.arel_table
|
swf_assets = SwfAsset.arel_table
|
||||||
|
|
||||||
# If a relationship used to bind an item and asset for this body type,
|
# If a relationship used to bind an item and asset for this body type,
|
||||||
# but doesn't in this sample, the two have been unbound. Delete the
|
# but doesn't in this sample, the two have been unbound. Delete the
|
||||||
# relationship.
|
# relationship.
|
||||||
ids_to_delete = self.parent_swf_asset_relationships.
|
ids_to_delete = self.parent_swf_asset_relationships.
|
||||||
select(:remote_id).
|
select(rels[:id]).
|
||||||
joins(:swf_asset).
|
joins(:swf_asset).
|
||||||
where(rels[:swf_asset_id].not_in(new_swf_asset_ids)).
|
where(rels[:swf_asset_id].not_in(new_swf_asset_ids)).
|
||||||
where(swf_assets[:body_id].in([@current_body_id, 0])).
|
where(swf_assets[:body_id].in([@current_body_id, 0])).
|
||||||
map(&:remote_id)
|
map(&:id)
|
||||||
|
|
||||||
unless ids_to_delete.empty?
|
unless ids_to_delete.empty?
|
||||||
self.parent_swf_asset_relationships.
|
ParentSwfAssetRelationship.where(:id => ids_to_delete).delete_all
|
||||||
where(rels[:swf_asset_id].in(ids_to_delete)).
|
|
||||||
delete_all
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@parent_swf_asset_relationships_to_update.each do |rel|
|
@parent_swf_asset_relationships_to_update.each do |rel|
|
||||||
rel.save!
|
rel.save!
|
||||||
rel.swf_asset.save!
|
rel.swf_asset.save!
|
||||||
|
|
Loading…
Reference in a new issue