> I have a conundrum that I'm _sure_ someone else has already thought of > and solved. How does one best handle the scenario of association > object changes and data integrity? > > For example, if I have a standard ecommerce site that sells Products > and people can have Orders and an Order has_many Products... then, > what happens if Product #3 is part of Order #2 but at some point, the > shop owner goes in and edits Product #3 to change it's description... > or it's price... or marks it as "no longer for sale"? Now, Order #2 is > referencing Product #3 via the association but the data in Product #3 > is no longer the right data for the Order? > > I can imagine a number of ways to handle this, but none of them seem > ideal. I'm curious what people do in this type of (very?) common > scenario.
Once a product is put into an order it becomes a "line item". The line item has the sku, quantity and price at the time it was added. I'd also put in a description which would be the product name and you may as well associate it with the product, but don't ever look at the product's price -- just the line items price. In the case where you want to delete a product, simply flag it as unavailable/old/expired/hidden or something instead. That way you can still go see the original product from a given order if you wanted to. -philip --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

