impress/app/models
Emi Matchu 39bed6b157 Make Item's update_cached_fields callback more reliable
In our tests, I discovered an unexpected behavior where calling
`item.swf_assets << swf_asset` wasn't updating computed fields
correctly.

This isn't something we actually do in-app, I think the modeling system
happened to trigger the callbacks in a way that still worked fine?

But I think this is a good idea for reliability, since caching is such
a notoriously difficult thing to get right anyway! And it makes our
tests simpler and clearer.

Specifically, `compatible_body_ids` references `swf_assets`, which, I'm
kinda surprised, *doesn't* include the newly-added asset yet when the
`ParentSwfAssetRelationship.after_save` hook runs while calling
`item.swf_assets << swf_asset`. Reloading it fixes this!
2024-11-19 14:26:06 -08:00
..
fundraising Move fundraising models into the Fundraising module 2024-02-18 20:29:31 -08:00
item Handle invalid Item state a bit better 2024-10-21 14:24:45 -07:00
pet Reapply "Extract modeling ViewerData class into new Pet::ModelingSnapshot file" 2024-11-10 11:43:54 -08:00
alt_style.rb Fall back to blank image if alt style has no preview image 2024-11-15 20:04:45 -08:00
application_record.rb Upgrade to Rails 5.2.8.1 2023-10-23 19:05:05 -07:00
auth_record.rb Add AuthUser model, connecting to openneo_id db 2023-10-23 19:05:07 -07:00
auth_user.rb Move NCMall and NeoPass services into a Neopets module 2024-10-18 17:27:15 -07:00
closet_hanger.rb Fix MissingAttributeError in ClosetHanger#merge_quantities 2024-02-28 13:30:55 -08:00
closet_list.rb Disallow email addresses in closet list descriptions 2024-04-16 17:04:31 -07:00
closet_visibility.rb Delete a couple unused accessors 2023-11-11 15:42:08 -08:00
color.rb Handle new colors/species in the Rainbow Pool 2024-11-15 19:56:07 -08:00
contribution.rb Track contributions of Alt Styles 2024-01-24 03:54:43 -08:00
item.rb Make Item's update_cached_fields callback more reliable 2024-11-19 14:26:06 -08:00
item_outfit_relationship.rb Oops, update outfit's updated_at when adding/removing items 2024-02-08 10:32:53 -08:00
nc_mall_record.rb Add more info to NC Mall section of Item Getting Guide 2024-05-14 16:04:40 -07:00
neopets_connection.rb Upgrade to Rails 5.2.8.1 2023-10-23 19:05:05 -07:00
neopets_page.rb Update most URLs to use HTTPS 2023-10-25 15:22:57 -07:00
outfit.rb Add Customize More button back to item pages 2024-09-06 17:12:11 -07:00
parent_swf_asset_relationship.rb Revert modeling refactors to the old modeling that worked! 2024-11-06 14:31:16 -08:00
pet.rb Reapply "Extract modeling ViewerData class into new Pet::ModelingSnapshot file" 2024-11-10 11:43:54 -08:00
pet_state.rb Reapply "Use our IntegerSet serializer for PetState#swf_asset_ids" 2024-11-10 11:41:06 -08:00
pet_type.rb Handle new colors/species in the Rainbow Pool 2024-11-15 19:56:07 -08:00
species.rb Handle new colors/species in the Rainbow Pool 2024-11-15 19:56:07 -08:00
swf_asset.rb Revert modeling refactors to the old modeling that worked! 2024-11-06 14:31:16 -08:00
user.rb Add shadowban mechanism for closet lists 2024-04-20 20:57:15 -07:00
zone.rb Remove unused logic for whether a zone is "sometimes" occupied 2024-08-31 13:16:47 -07:00